1
0
Fork 0

Bad apple??

This commit is contained in:
Casey 2023-10-15 04:26:23 +03:00
parent 635886f683
commit 570e721e3e
Signed by: hkc
GPG Key ID: F0F6CFE11CDB0960
3 changed files with 51 additions and 0 deletions

28
badapple-tape.py Normal file
View File

@ -0,0 +1,28 @@
#!/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}")

BIN
badapple.bin Normal file

Binary file not shown.

23
videotape.lua Normal file
View File

@ -0,0 +1,23 @@
local tape = peripheral.find("tape_drive")
local mon = peripheral.find("monitor")
tape.seek(0)
mon.setTextScale(1)
local w, h = string.byte(tape.read(2), 1, 2)
repeat
for y = 1, h do
mon.setCursorPos(1, y)
local buf = string.byte(tape.read(w), 1, -1)
local s, f, b = "", "", ""
for x = 1, w do
s = s .. string.char(bit32.band(0x7F, buf[x]))
local inv = bit32.band(0x80, buf[x])
f = f .. (inv and "f" or "0")
b = b .. (inv and "0" or "f")
end
mon.blit(s, f, b)
end
os.sleep(0.01)
until tape.isEnd()