29 lines
920 B
Python
29 lines
920 B
Python
|
#!/usr/bin/env python3
|
||
|
# x-run: python3 % badapple.bin ~/videos/badapple/frame*.png
|
||
|
|
||
|
from sys import argv
|
||
|
from PIL import Image
|
||
|
|
||
|
w, h = 82, 40
|
||
|
|
||
|
bits = [[1,2],[4,8],[16,0]]
|
||
|
|
||
|
with open(argv[1], "wb") as fp:
|
||
|
fp.write(bytes([w, h]))
|
||
|
for i, f in enumerate(argv[2:]):
|
||
|
with Image.open(f) as im:
|
||
|
img = im.resize((w * 2, h * 3)).convert("1")
|
||
|
for y in range(h):
|
||
|
line = bytearray()
|
||
|
for x in range(w):
|
||
|
val = 0
|
||
|
for oy, l in enumerate(bits):
|
||
|
for ox, bi in enumerate(l):
|
||
|
if img.getpixel((x * 2 + ox, y * 3 + oy)):
|
||
|
val |= bi
|
||
|
if img.getpixel((x * 2 + 1, y * 3 + 2)):
|
||
|
val ^= 0x9f
|
||
|
line.append(val)
|
||
|
fp.write(line)
|
||
|
print(f"wrote {i + 1} / {len(argv) - 2}")
|