#!/usr/bin/env python3 # -*- coding: utf-8 -*- """raw2png.py — 将 meow_font_demo 产出的 480x720 RGB565(raw, little-endian uint16) 转成 PNG。 用法: raw2png.py """ import sys from PIL import Image W, H = 480, 720 def main(): raw = open(sys.argv[1], "rb").read() assert len(raw) == W * H * 2, f"expect {W * H * 2}, got {len(raw)}" out = sys.argv[2] img = Image.new("RGBA", (W, H), (0, 0, 0, 255)) px = img.load() for y in range(H): base = y * W * 2 for x in range(W): o = base + x * 2 v = raw[o] | (raw[o + 1] << 8) # LE uint16 r = ((v >> 11) & 31) * 255 // 31 g = ((v >> 5) & 63) * 255 // 63 b = (v & 31) * 255 // 31 px[x, y] = (r, g, b, 255) img.save(out) print(f"saved {out} ({W}x{H})") if __name__ == "__main__": main()