75 lines
2.4 KiB
Python
75 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Icon-Generator für Mercedes-Benz MYP Platform
|
|
Generiert PWA-Icons in verschiedenen Größen
|
|
"""
|
|
|
|
import os
|
|
from PIL import Image, ImageDraw, ImageFont
|
|
|
|
def create_mercedes_icon(size, output_path):
|
|
"""
|
|
Erstellt ein einfaches Mercedes-Benz-Logo-Icon
|
|
|
|
Args:
|
|
size: Größe des Icons (quadratisch)
|
|
output_path: Ausgabepfad für das Icon
|
|
"""
|
|
# Erstelle ein schwarzes quadratisches Bild
|
|
img = Image.new('RGB', (size, size), color='#000000')
|
|
draw = ImageDraw.Draw(img)
|
|
|
|
# Berechne Kreis-Dimensionen
|
|
center = size // 2
|
|
radius = int(size * 0.4) # 80% der Größe für den äußeren Kreis
|
|
|
|
# Äußerer weißer Kreis
|
|
draw.ellipse([center - radius, center - radius, center + radius, center + radius],
|
|
outline='#FFFFFF', width=max(2, size // 50))
|
|
|
|
# Mercedes-Stern (vereinfacht)
|
|
star_radius = int(radius * 0.7)
|
|
|
|
# Drei Linien für den Mercedes-Stern
|
|
# Linie nach oben
|
|
draw.line([center, center, center, center - star_radius],
|
|
fill='#FFFFFF', width=max(2, size // 40))
|
|
|
|
# Linie nach rechts unten (60°)
|
|
import math
|
|
angle1 = math.radians(60)
|
|
x1 = center + int(star_radius * math.sin(angle1))
|
|
y1 = center + int(star_radius * math.cos(angle1))
|
|
draw.line([center, center, x1, y1],
|
|
fill='#FFFFFF', width=max(2, size // 40))
|
|
|
|
# Linie nach links unten (120°)
|
|
angle2 = math.radians(120)
|
|
x2 = center + int(star_radius * math.sin(angle2))
|
|
y2 = center + int(star_radius * math.cos(angle2))
|
|
draw.line([center, center, x2, y2],
|
|
fill='#FFFFFF', width=max(2, size // 40))
|
|
|
|
# Speichere das Bild
|
|
img.save(output_path, 'PNG', optimize=True)
|
|
print(f"✅ Icon erstellt: {output_path} ({size}x{size})")
|
|
|
|
def main():
|
|
"""Generiert alle benötigten Icon-Größen"""
|
|
sizes = [72, 96, 128, 144, 152, 192, 384, 512]
|
|
|
|
# Stelle sicher, dass das Verzeichnis existiert
|
|
os.makedirs('static/icons', exist_ok=True)
|
|
|
|
for size in sizes:
|
|
output_path = f'icon-{size}x{size}.png'
|
|
try:
|
|
create_mercedes_icon(size, output_path)
|
|
except Exception as e:
|
|
print(f"❌ Fehler beim Erstellen von {output_path}: {str(e)}")
|
|
|
|
print("\n🎯 Alle Icons wurden erfolgreich generiert!")
|
|
print("📁 Verzeichnis: static/icons/")
|
|
|
|
if __name__ == "__main__":
|
|
main() |