boost sign image thickness and contrast

This commit is contained in:
Mylloon 2024-10-03 21:06:11 +02:00
parent c00060af2d
commit a19353f869
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

22
main.py
View file

@ -5,7 +5,7 @@ from random import choice
from sys import argv from sys import argv
from urllib.request import urlretrieve from urllib.request import urlretrieve
from PIL import Image, ImageDraw, ImageFont from PIL import Image, ImageDraw, ImageEnhance, ImageFilter, ImageFont
zodiac_signs = [ zodiac_signs = [
"Belier", "Belier",
@ -41,6 +41,23 @@ def get_path(image: str):
return join(image_dir, f"{image.lower()}.png") return join(image_dir, f"{image.lower()}.png")
def get_sign_image(image: str):
"""Get sign image"""
sign_image = Image.open(get_path(image)).convert("RGBA")
# Add thickness
alpha = sign_image.split()[3]
bold_mask = alpha.filter(ImageFilter.MaxFilter())
sign_image.putalpha(bold_mask)
# Add contrast
enhancer = ImageEnhance.Contrast(sign_image)
enhanced_image = enhancer.enhance(2.0)
enhanced_image.thumbnail((100, 105))
return enhanced_image
def create_horoscope_image(horoscope: dict[str, dict[str, str]]): def create_horoscope_image(horoscope: dict[str, dict[str, str]]):
"""Generate horoscope images""" """Generate horoscope images"""
img_width, img_height = 1200, 425 img_width, img_height = 1200, 425
@ -54,8 +71,7 @@ def create_horoscope_image(horoscope: dict[str, dict[str, str]]):
x, y = 10, 10 x, y = 10, 10
for sign, prediction in horoscope.items(): for sign, prediction in horoscope.items():
sign_image = Image.open(get_path(sign)).convert("RGBA") sign_image = get_sign_image(sign)
sign_image.thumbnail((100, 105))
image.paste(sign_image, (x + 20, y), sign_image) image.paste(sign_image, (x + 20, y), sign_image)
# Sign text # Sign text