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()