From 1ec5c11ea737412537580e9efbf66d5e0226f662 Mon Sep 17 00:00:00 2001 From: Daniel Thompson Date: Thu, 23 Jan 2020 18:55:03 +0000 Subject: WIP: tools: Simple RLE encoder diff --git a/tools/rle_encode.py b/tools/rle_encode.py new file mode 100644 index 0000000..3117ee1 --- /dev/null +++ b/tools/rle_encode.py @@ -0,0 +1,51 @@ +from PIL import Image + +im = Image.open('pine64.png') +pixels = im.load() + +rle = [] +rl = 0 +px = 0 + +for y in range(im.height): + for x in range(im.width): + newpx = pixels[x, y] + if newpx == px: + rl += 1 + continue + assert(rl < 255) + rle.append(rl) + rl = 1 + px = newpx +rle.append(rl) + +sx = 240 +sy = 240 +image = bytes(rle) + + +data = bytearray(2*sx) +dp = 0 +black = ord('#') +white = ord(' ') +color = black + +for rl in image: + while rl: + data[dp] = color + data[dp+1] = color + dp += 2 + rl -= 1 + + if dp >= (2*sx): + print(data.decode('utf-8')) + dp = 0 + + if color == black: + color = white + else: + color = black + +assert(dp == 0) + +print(image) -- cgit v0.10.2