"""Regenerate the native multi-resolution icon (development only; requires Pillow).""" from pathlib import Path from PIL import Image, ImageDraw root = Path(__file__).resolve().parents[1] / 'resources' # Geometric K: white stem/upper arm, mint lower arm on an indigo keycap. polygons = [('#FFFFFF', [(8, 7), (12, 7), (12, 25), (8, 25)]), ('#FFFFFF', [(11, 15), (22, 6), (25, 9), (14, 18)]), ('#5EEAD4', [(11, 14), (25, 24), (22, 27), (10, 18)])] svg = '\n' svg += '\n' for color, points in polygons: svg += '\n' (root / 'kswitcher.svg').write_text(svg + '\n', encoding='utf-8') scale = 32 im = Image.new('RGBA', (32*scale, 32*scale)) draw = ImageDraw.Draw(im) draw.rounded_rectangle((scale, scale, 31*scale, 31*scale), radius=7*scale, fill='#4F46E5') for color, points in polygons: draw.polygon([(x*scale,y*scale) for x,y in points], fill=color) im = im.resize((256,256),Image.Resampling.LANCZOS) im.save(root / 'kswitcher.png') im.save(root / 'kswitcher.ico', sizes=[(s,s) for s in (16,20,24,32,40,48,64,128,256)])