85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Generate placeholder icons for the GallerySubscriber extension.
|
|
Run this script from the extension directory.
|
|
|
|
Requirements: Pillow (pip install Pillow)
|
|
"""
|
|
|
|
import os
|
|
from pathlib import Path
|
|
|
|
try:
|
|
from PIL import Image, ImageDraw
|
|
except ImportError:
|
|
print("Pillow not installed. Install with: pip install Pillow")
|
|
print("Or manually create icon-16.png, icon-32.png, icon-48.png, icon-128.png")
|
|
exit(1)
|
|
|
|
# Icon configuration
|
|
BACKGROUND_COLOR = '#1976d2' # Primary blue
|
|
SIZES = [16, 32, 48, 128]
|
|
|
|
def create_icon(size):
|
|
"""Create a simple colored square icon with rounded corners effect."""
|
|
img = Image.new('RGBA', (size, size), (0, 0, 0, 0))
|
|
draw = ImageDraw.Draw(img)
|
|
|
|
# Draw filled rounded rectangle (approximated with circle corners for small sizes)
|
|
margin = max(1, size // 16)
|
|
radius = max(2, size // 8)
|
|
|
|
# For simplicity, just draw a solid square with the primary color
|
|
draw.rectangle([margin, margin, size - margin - 1, size - margin - 1],
|
|
fill=BACKGROUND_COLOR)
|
|
|
|
# Draw a simple "G" or download arrow for larger sizes
|
|
if size >= 32:
|
|
# Draw a simple download arrow
|
|
center_x = size // 2
|
|
center_y = size // 2
|
|
arrow_size = size // 3
|
|
|
|
# Arrow body (vertical line)
|
|
line_width = max(2, size // 12)
|
|
draw.rectangle([
|
|
center_x - line_width // 2,
|
|
center_y - arrow_size // 2,
|
|
center_x + line_width // 2,
|
|
center_y + arrow_size // 4
|
|
], fill='white')
|
|
|
|
# Arrow head (triangle pointing down)
|
|
head_size = arrow_size // 2
|
|
draw.polygon([
|
|
(center_x - head_size, center_y),
|
|
(center_x + head_size, center_y),
|
|
(center_x, center_y + head_size)
|
|
], fill='white')
|
|
|
|
# Base line
|
|
draw.rectangle([
|
|
center_x - arrow_size // 2,
|
|
center_y + arrow_size // 2,
|
|
center_x + arrow_size // 2,
|
|
center_y + arrow_size // 2 + line_width
|
|
], fill='white')
|
|
|
|
return img
|
|
|
|
def main():
|
|
icons_dir = Path(__file__).parent / 'icons'
|
|
icons_dir.mkdir(exist_ok=True)
|
|
|
|
for size in SIZES:
|
|
icon = create_icon(size)
|
|
output_path = icons_dir / f'icon-{size}.png'
|
|
icon.save(output_path, 'PNG')
|
|
print(f'Created {output_path}')
|
|
|
|
print('\nDone! Icons created successfully.')
|
|
print('You can replace these with custom icons later.')
|
|
|
|
if __name__ == '__main__':
|
|
main()
|