Files
cookbook/make_icons.py
T

51 lines
1.7 KiB
Python
Executable File

from PIL import Image, ImageDraw
def generate_icon(size, filename):
img = Image.new("RGBA", (size, size), (0, 0, 0, 0))
draw = ImageDraw.Draw(img)
# Rounded rectangle background
corner_radius = size // 5
bg_color = (255, 107, 53, 255) # Primary orange
draw.rounded_rectangle([0, 0, size, size], radius=corner_radius, fill=bg_color)
# Outer plate rim
center = size // 2
rim_radius = int(size * 0.38)
draw.ellipse(
[center - rim_radius, center - rim_radius, center + rim_radius, center + rim_radius],
fill=(255, 255, 255, 240)
)
# Inner plate circle
inner_radius = int(size * 0.30)
draw.ellipse(
[center - inner_radius, center - inner_radius, center + inner_radius, center + inner_radius],
fill=(245, 247, 250, 255)
)
# Food accent cloche / fork / dish shapes
cloche_r = int(size * 0.18)
draw.pieslice(
[center - cloche_r, center - cloche_r, center + cloche_r, center + cloche_r],
start=180, end=360, fill=(255, 107, 53, 255)
)
# Cloche base line
draw.line(
[(center - cloche_r, center), (center + cloche_r, center)],
fill=(255, 107, 53, 255), width=max(2, size // 40)
)
# Cloche knob
knob_r = max(2, size // 32)
draw.ellipse(
[center - knob_r, center - cloche_r - knob_r, center + knob_r, center - cloche_r + knob_r],
fill=(255, 107, 53, 255)
)
img.save(filename, "PNG")
print(f"Generated {filename}")
if __name__ == "__main__":
generate_icon(192, "/home/maxi/Projekt/wtc.waiswuaschd.de/app/static/icon-192.png")
generate_icon(512, "/home/maxi/Projekt/wtc.waiswuaschd.de/app/static/icon-512.png")