remove outputs from module

This commit is contained in:
Denis Lehmann 2021-07-18 21:51:35 +02:00
parent 66e763f0d0
commit 138d663cfc
2 changed files with 73 additions and 67 deletions

View File

@ -7,9 +7,9 @@ from huepaper import (
add_lines, add_lines,
add_pixelation, add_pixelation,
add_emblem, add_emblem,
save_image,
) )
import argparse import argparse
import os
def print_greeter(): def print_greeter():
@ -28,6 +28,38 @@ def print_greeter():
print(greeter) print(greeter)
def save_image(image, filepath):
"""Save an image at given filepath."""
save = True
# Check whether file exists
if os.path.isfile(filepath):
overwrite = input(
"The file {} already exists. Do you want to overwrite it? [y/N] ".format(
filepath
)
)
if overwrite != "y" and overwrite != "Y":
save = False
if save:
stop = False
while not stop:
try:
image.save(filepath)
stop = True
except Exception as e:
print("Failed to save wallpaper: {}".format(e))
again = input("Do you want to try again? [Y/n] ")
if again == "n" or again == "N":
stop = True
else:
filepath = input(
"Please enter new path where the wallpaper shall be saved: "
)
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
@ -152,10 +184,17 @@ if __name__ == "__main__":
parser.error("Pixelation value must be set in form: 42x42") parser.error("Pixelation value must be set in form: 42x42")
print_greeter() print_greeter()
try:
random_color = False if color else True
base_color = get_base_color(color, sat_min, sat_max, lum_min, lum_max) base_color = get_base_color(color, sat_min, sat_max, lum_min, lum_max)
if random_color:
print("Selected random base color: {}".format(base_color.hex))
c1, c2, c3, c4 = create_colors( c1, c2, c3, c4 = create_colors(
base_color, hue_max, sat_min, sat_max, lum_min, lum_max base_color, hue_max, sat_min, sat_max, lum_min, lum_max
) )
image = create_base_image(c1, c2, c3, c4, width, height) image = create_base_image(c1, c2, c3, c4, width, height)
if lines: if lines:
@ -183,3 +222,7 @@ if __name__ == "__main__":
if output: if output:
save_image(image, output) save_image(image, output)
except Exception as e:
print(str(e))
exit(1)

View File

@ -2,7 +2,6 @@
from PIL import Image, ImageDraw, ImageOps from PIL import Image, ImageDraw, ImageOps
from colour import Color from colour import Color
import os.path
import random import random
@ -16,7 +15,6 @@ def get_base_color(
sat = random.uniform(sat_min, sat_max) sat = random.uniform(sat_min, sat_max)
lum = random.uniform(lum_min, lum_max) lum = random.uniform(lum_min, lum_max)
base_color = Color(hue=hue, saturation=sat, luminance=lum) base_color = Color(hue=hue, saturation=sat, luminance=lum)
print("Selected random base color: {}".format(base_color.hex))
# Else try to parse string # Else try to parse string
else: else:
@ -26,14 +24,13 @@ def get_base_color(
try: try:
base_color = Color("#{}".format(color_string)) base_color = Color("#{}".format(color_string))
except: except:
print("Invalid color expression: {}".format(color_string)) raise Exception("Invalid color expression: {}".format(color_string))
exit(1)
return base_color return base_color
def create_colors( def create_colors(
base_color=None, hue_max=0.1, sat_min=0.2, sat_max=1.0, lum_min=0.2, lum_max=0.9 base_color=None, hue_max=0.1, sat_min=0.2, sat_max=1.0, lum_min=0.3, lum_max=0.9
): ):
"""Create four corner colors for a huepaper by an optional base color.""" """Create four corner colors for a huepaper by an optional base color."""
if not base_color: if not base_color:
@ -160,13 +157,11 @@ def add_emblem(image, filepath):
try: try:
emblem_image = Image.open(filepath) emblem_image = Image.open(filepath)
except Exception as e: except Exception as e:
print("Failed to load emblem: {}".format(e)) raise Exception("Failed to load emblem: {}".format(e))
exit(1)
# Exit if emblem is too big # Exit if emblem is too big
if emblem_image.size[0] > width or emblem_image.size[1] > height: if emblem_image.size[0] > width or emblem_image.size[1] > height:
print("Emblem can't be bigger than the wallpaper") raise Exception("Emblem can't be bigger than the huepaper")
exit(1)
# Insert emblem in the center # Insert emblem in the center
offset = ( offset = (
@ -176,35 +171,3 @@ def add_emblem(image, filepath):
image.alpha_composite(emblem_image, offset) image.alpha_composite(emblem_image, offset)
return image return image
def save_image(image, filepath):
"""Save an image at given filepath."""
save = True
# Check whether file exists
if os.path.isfile(filepath):
overwrite = input(
"The file {} already exists. Do you want to overwrite it? [y/N] ".format(
filepath
)
)
if overwrite != "y" and overwrite != "Y":
save = False
if save:
stop = False
while not stop:
try:
image.save(filepath)
stop = True
except Exception as e:
print("Failed to save wallpaper: {}".format(e))
again = input("Do you want to try again? [Y/n] ")
if again == "n" or again == "N":
stop = True
else:
filepath = input(
"Please enter new path where the wallpaper shall be saved: "
)