Compare commits

...

4 commits
1.1.1 ... main

Author SHA1 Message Date
89af320a66
under text getting eaten
All checks were successful
Upload release / build (push) Successful in 3s
2024-10-07 23:11:46 +02:00
a61cc02c42
Release at each commit, release will now override the old one
All checks were successful
Upload release / build (push) Successful in 3s
2024-10-03 21:27:39 +02:00
0a790e8a75
vertical text generator into function
All checks were successful
Upload release / build (push) Successful in 7s
2024-10-03 21:11:48 +02:00
a19353f869
boost sign image thickness and contrast 2024-10-03 21:06:11 +02:00
2 changed files with 35 additions and 10 deletions

View file

@ -2,8 +2,7 @@ name: Upload release
on:
push:
tags:
- "*"
branches: [main]
jobs:
build:
@ -18,4 +17,6 @@ jobs:
uses: akkuman/gitea-release-action@v1
with:
token: ${{ secrets.TOKEN }}
name: Latest version
tag_name: latest
files: horoscope.bat

40
main.py
View file

@ -5,7 +5,7 @@ from random import choice
from sys import argv
from urllib.request import urlretrieve
from PIL import Image, ImageDraw, ImageFont
from PIL import Image, ImageDraw, ImageEnhance, ImageFilter, ImageFont
zodiac_signs = [
"Belier",
@ -41,6 +41,34 @@ def get_path(image: str):
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 vertical_text(text: str, font: ImageFont.ImageFont | ImageFont.FreeTypeFont):
"""Image with vertical text"""
text_img = Image.new("RGBA", (135, 29), (255, 255, 255, 0))
text_draw = ImageDraw.Draw(text_img)
text_draw.text((0, 0), f"{text:^15}", font=font, fill="black")
text_draw = text_img.rotate(90, expand=True)
return text_draw
def create_horoscope_image(horoscope: dict[str, dict[str, str]]):
"""Generate horoscope images"""
img_width, img_height = 1200, 425
@ -54,16 +82,12 @@ def create_horoscope_image(horoscope: dict[str, dict[str, str]]):
x, y = 10, 10
for sign, prediction in horoscope.items():
sign_image = Image.open(get_path(sign)).convert("RGBA")
sign_image.thumbnail((100, 105))
sign_image = get_sign_image(sign)
image.paste(sign_image, (x + 20, y), sign_image)
# Sign text
text_img = Image.new("RGBA", (135, 24), (255, 255, 255, 0))
text_draw = ImageDraw.Draw(text_img)
text_draw.text((0, 0), f"{sign:^15}", font=font_sign, fill="black")
text_draw = text_img.rotate(90, expand=True)
image.paste(text_draw, (x - 10, y - 10), text_draw)
text_draw = vertical_text(sign, font_sign)
image.paste(text_draw, (x - 12, y - 10), text_draw)
# Love prediction
love = Image.open(join(image_dir, "love.png")).convert("RGBA")