42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
from PIL import Image, ImageDraw
|
|
from pathlib import Path
|
|
|
|
def generate_app_icons():
|
|
assets_dir = Path(__file__).resolve().parent / "assets"
|
|
assets_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
size = (256, 256)
|
|
img = Image.new("RGBA", size, (0, 0, 0, 0))
|
|
draw = ImageDraw.Draw(img)
|
|
|
|
# Draw rounded shield / background
|
|
# Gradient/Cyan-Indigo background rounded rect
|
|
draw.rounded_rectangle([(16, 16), (240, 240)], radius=48, fill="#0F172A", outline="#06B6D4", width=8)
|
|
|
|
# Draw cloud / shield icon
|
|
# Cloud base
|
|
draw.ellipse([(60, 110), (140, 170)], fill="#06B6D4")
|
|
draw.ellipse([(110, 80), (190, 160)], fill="#38BDF8")
|
|
draw.ellipse([(140, 110), (200, 170)], fill="#60A5FA")
|
|
draw.rectangle([(100, 130), (170, 170)], fill="#06B6D4")
|
|
|
|
# Draw upward upload arrow inside cloud
|
|
# Arrow head
|
|
draw.polygon([(145, 110), (120, 135), (170, 135)], fill="#FFFFFF")
|
|
# Arrow body
|
|
draw.rectangle([(137, 135), (153, 160)], fill="#FFFFFF")
|
|
|
|
# Save PNG
|
|
png_path = assets_dir / "icon.png"
|
|
img.save(png_path, "PNG")
|
|
|
|
# Save ICO
|
|
ico_path = assets_dir / "icon.ico"
|
|
img.save(ico_path, format="ICO", sizes=[(16, 16), (32, 32), (48, 48), (64, 64), (128, 128), (256, 256)])
|
|
|
|
print(f"Icons generated at: {png_path} and {ico_path}")
|
|
return ico_path, png_path
|
|
|
|
if __name__ == "__main__":
|
|
generate_app_icons()
|