|
| 1 | +from displayio import Bitmap |
| 2 | +import binascii |
| 3 | +import jpegio |
| 4 | + |
| 5 | +content = binascii.a2b_base64( |
| 6 | + b""" |
| 7 | +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 |
| 49 | +bGuXlnADbup+WcAAAAAAAAAAAAD/2Q==""" |
| 50 | +) |
| 51 | + |
| 52 | +decoder = jpegio.JpegDecoder() |
| 53 | + |
| 54 | + |
| 55 | +def test(jpeg_input, scale): |
| 56 | + w, h = decoder.decode(jpeg_input, scale=scale) |
| 57 | + print(f"{w}x{h}") |
| 58 | + |
| 59 | + b = Bitmap(w, h, 65535) |
| 60 | + |
| 61 | + decoder.decode(jpeg_input, b, scale=scale) |
| 62 | + |
| 63 | + for y in range(min(30, h)): |
| 64 | + for x in range(min(72, w)): |
| 65 | + print(end="#" if (b[x, y] & 0x7E0) < 0x400 else " ") |
| 66 | + print("..." if w > 72 else "") |
| 67 | + print("...\n" if h > 24 else "") |
| 68 | + |
| 69 | + |
| 70 | +test(content, scale=0) |
| 71 | +test(content, scale=1) |
| 72 | +test(content, scale=2) |
| 73 | +test(content, scale=3) |
0 commit comments