from PIL import Image, ImageDraw ACCENT = (51, 112, 255, 255) WHITE = (255, 255, 255, 255) def make(size, path): img = Image.new('RGBA', (size, size), (0, 0, 0, 0)) d = ImageDraw.Draw(img) m = size * 0.07 d.rounded_rectangle([m, m, size - m, size - m], radius=size * 0.19, fill=ACCENT) x0, y0, x1, y1 = size * 0.24, size * 0.30, size * 0.76, size * 0.78 d.rounded_rectangle([x0, y0, x1, y1], radius=size * 0.045, fill=WHITE) d.rectangle([x0, y0 + size * 0.045, x1, y0 + size * 0.09], fill=ACCENT) for cx in (0.36, 0.64): d.rounded_rectangle([size * cx - size * 0.02, size * 0.20, size * cx + size * 0.02, size * 0.33], radius=size * 0.02, fill=WHITE) for dx in (0.34, 0.5, 0.66): for dy in (0.5, 0.63): d.ellipse([size * dx - size * 0.025, size * dy - size * 0.025, size * dx + size * 0.025, size * dy + size * 0.025], fill=ACCENT) img.save(path) make(192, 'icon-192.png') make(512, 'icon-512.png') print('icons generated')