Files

33 lines
1.2 KiB
Python

import struct, zlib, os
def make_png(path, size):
w = h = size
raw = b''
for y in range(h):
row = b'\x00'
for x in range(w):
cx, cy = x - w / 2, y - h / 2
d = (cx * cx + cy * cy) ** 0.5 / (w / 2)
r = int(120 + 60 * (1 - d))
g = int(60 + 40 * (1 - d))
b = int(200 + 40 * (1 - d))
row += bytes((r, g, b, 255))
raw += row
def chunk(tag, data):
c = tag + data
return struct.pack('>I', len(data)) + c + struct.pack('>I', zlib.crc32(c) % 0x100000000)
png = b'\x89PNG\r\n\x1a\n'
png += chunk(b'IHDR', struct.pack('>IIBBBBB', w, h, 8, 6, 0, 0, 0))
png += chunk(b'IDAT', zlib.compress(raw, 9))
png += chunk(b'IEND', b'')
open(path, 'wb').write(png)
os.makedirs('src-tauri/icons', exist_ok=True)
make_png('src-tauri/icons/32x32.png', 32)
make_png('src-tauri/icons/128x128.png', 128)
png128 = open('src-tauri/icons/128x128.png', 'rb').read()
ico = struct.pack('<HHH', 0, 1, 1) + struct.pack('<BBBBHHII', 128, 128, 0, 0, 1, 32, len(png128), 22) + png128
open('src-tauri/icons/icon.ico', 'wb').write(ico)
open('src-tauri/icons/icon.png', 'wb').write(png128)
print('icons:', os.listdir('src-tauri/icons'))