手写位图数组的活儿可以省了:从 PNG 到 C 数组、字库自动生成,LCD Image Converter 五分钟上手
手写位图数组的活儿可以省了从 PNG 到 C 数组、字库自动生成LCD Image Converter 五分钟上手【免费下载链接】lcd-image-converterTool to create bitmaps and fonts for embedded applications, v.2项目地址: https://gitcode.com/gh_mirrors/lc/lcd-image-converter你刚把一张 128×128 的 UI 背景图塞进 Flash链接器就开始报警手写的 2048 字节数组核对要小二十分钟烧到板子上还左移了一行。LCD Image Converter 干的就是这类活——嵌入式图像转 C 数组、LCD 字库自动生成、MCU 图像 RLE 压缩它全接过去从装好到出第一个文件五分钟内。它替你省掉的四件手工活图片转 C 数组源码图像数据 RLE 压缩圈定字符生成字库旋转、翻转、移位一键完成从装到跑你的第一条命令⚡ 项目是 Qt/C 写的Linux 下这样来# 编译一次 git clone https://gitcode.com/gh_mirrors/lc/lcd-image-converter cd lcd-image-converter qmake make # 最简转换一张 PNG 进一个 .c 出 ./release/linux/lcd-image-converter --modeconvert-image \ --inputicon.png \ --outputicon.c \ --doc-nameicon \ --preset-namelcdR4G5B4这行命令做了四件事读 icon.png写到 icon.cC 代码里变量名叫 icon再按预设 lcdR4G5B4 决定像素深度和输出格式。预设名字从 GUI 设置里的预设列表选。想顺手生成个字库换个模式就行./release/linux/lcd-image-converter --modeconvert-font \ --familyDejaVu Sans --size16 --mono \ --chars-range48-57 --doc-namedigits \ --outputdigits.c --preset-namelcdR4G5B4等价于用等宽字体把 0–9 这十个字符按 16 号渲染成位图只收这十个一个多余的都不占。从 PNG 到 C 数组管线一眼看完不用分什么层一条线就够icon.png → 像素格式转换 →可选旋转/翻转/移位 → RLE 压缩 → icon.c。每一环都是独立模块像素打包和位重排在 classes/parser/RLE 压缩在 classes/compression/输出 .c 文件长什么样、变量名叫什么全由模板说了算默认图像模板在 resources/image.tmpl预设本身定义在 preset.cpp。想换输出风格改模板比改代码省事。算笔账一张 64×64 单色图标能省多少拿一张 64×64 单色图标1bpp举例项目手写数组工具产出裸数据512 B逐字节敲512 BRLE 后再省约六成耗时二十分钟起位序错一位查一小时不到一秒上板后错位一行重写、重新烧改预设里的位序重跑手动写这种活儿真的没必要——RLE 只对连续相同像素起效黑白对比越强的图标压得越狠触发门槛由minimumOfEquals控制默认 2图片如果是渐变大片就别硬压。发现屏上显示不对查这三处 如果你发现图像在板子上整个转了 90°多半是预设里的“水平/垂直位序”和显示控制器对不上——项目两种方向都支持改预设重跑即可不用动数组。如果你发现 RLE 输出“比裸数据还大”多半是图像细节太多、连续相同像素太少检查下该不该关压缩别怀疑工具。如果你发现字库里少了几个字多半是字符集范围的问题只有--chars-list或--chars-range指定的字符才会被生成空格、冒号这类不显眼的字符最容易被漏掉。适不适合你看条件对不对三条都沾上适合用仓库里有一堆手写的const uint8_t xxx[]位图数组屏是 1–16bpp 的单色、灰度或彩色字库是固定集合数字、十六进制或者几百个常用汉字资源转换要进脚本或 CIconvert-image/convert-font/hex2bin三种模式都有命令行入口。不适合的设备要实时渲染几 MB 的大照片——它省的是“存法”的钱救不了你的 Flash 容量UI 已经是纯矢量渲染了静态位图转换对你收益有限。把逐比特的脏活交给工具你专心写显示驱动。项目是 GPL-3 开源的仓库就是第 4 节那个 clone 地址踩坑时先查预设的位序和字符集范围。【免费下载链接】lcd-image-converterTool to create bitmaps and fonts for embedded applications, v.2项目地址: https://gitcode.com/gh_mirrors/lc/lcd-image-converter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考