• 全新单提交:清除含敏感信息的旧历史(sudo 口令、内网 IP、SSH 密钥路径、热点 SSID、设备 MAC) • 本地开发文档/测试记录/构建脚本全部移入 gitignored 的 devdocs/ 与 scripts/build/(不入库) • 保留:MeowOS 源码(launcher/watchdog/bootmenu/meow_svcd/SDK)、项目规范文档、mips-repo 增补组件:SDK 统一日志+通知 API、meow_svcd 服务管理器、mips-repo 软件仓库
34 lines
882 B
Python
34 lines
882 B
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""raw2png.py — 将 meow_font_demo 产出的 480x720 RGB565(raw, little-endian uint16) 转成 PNG。
|
|
|
|
用法: raw2png.py <in.raw> <out.png>
|
|
"""
|
|
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()
|