尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

如何把PNG变成能烧进设备的C数组:LCD Image Converter 5条命令上手指南

如何把PNG变成能烧进设备的C数组:LCD Image Converter 5条命令上手指南 如何把PNG变成能烧进设备的C数组LCD Image Converter 5条命令上手指南【免费下载链接】lcd-image-converterTool to create bitmaps and fonts for embedded applications, v.2项目地址: https://gitcode.com/gh_mirrors/lc/lcd-image-converterLCD Image Converter 是一个开源转换工具一条命令把 PNG 图片、字体位图变成可直接编译进固件的 C 数组或二进制输出格式按预设和模板定制。适合嵌入式 GUI、自定义字符字体、屏幕资源受限的固件项目。谁应该看看这个工具做嵌入式 GUI 的工程师设计师给你一堆 PNG你要在代码里塞进一排排手算的位图数字 —— 这个工具直接把整张图转成带 RLE 压缩的 C 数组位打包方式按你屏幕控制器的预设走。需要自定义字体的固件开发不想把整张 Unicode 表塞进 ROM它按字符区块选择字体只生成实际用到的字符支持 Unicode 字符集README Features 清单。要跑 CI 自动出资源的团队它有完整的命令行模式支持convert-image、convert-font、hex2bin三种模式选项定义见 classes/cmdline/一条命令就能进构建脚本。从零跑通克隆到第一次转换只要5条命令Linux 下按 README 的构建步骤走需要装好 Qt 开发包qmakegit clone https://gitcode.com/gh_mirrors/lc/lcd-image-converter # 拉取源码 cd lcd-image-converter # 进入目录 qmake # 生成 Makefile make # 编译出可执行程序编译完成后跑通第一次转换参数格式来自命令行解析器源码./lcd-image-converter --modeconvert-image --inputlogo.png --outputlogo.c --doc-namelogo --preset-namelcdR4G5B4四个必选参数缺一不可--input源图、--output结果文件、--doc-name数组名、--preset-name预设名。可选--template指定自定义输出模板。功能拆解4个核心功能各干什么1. 图像转 C 数组convert-image输入一张 PNG或任意 QImage 可加载的格式处理读取像素后按预设做字节打包支持 8/16/24/32 位数据宽度和字节垂直/水平两种排布1...32 位每像素全覆盖位重排与流式打包在 classes/parser/convert/ 的 bitmaphelper、bitstream 里实现输出一段 C 源码数组或走模板输出的自定义结构2. RLE 压缩输入转换前的像素序列处理游程编码合并连续重复数据压缩器在 classes/compression/配合预设开启输出比原始位图更短的数组适合 ROM 空间紧张的单色/低色深屏3. 字体生成convert-font输入字符集选择按 Unicode 区块勾选或自定义范围处理只为所选字符生成位图数据classes/parser/convert/fonthelper.cpp 负责字符到点阵的映射输出字体 C 数组只含用到的字符不含整张字符表4. 转换前几何处理输入同一张源图处理旋转 90/180/270 度、水平/垂直翻转、缩放、平移都在 classes/operations/ 下测试用例里的样本图可对照效果输出处理后再走上面的转换流程不用来回开外部修图软件实际效果手写位图 vs 自动转换对照维度取自 README 的 Features 清单不掺注水数字维度手写位图LCD Image Converter位重排、字节打包手算偏移改图后全部重来按预设自动生成改图重跑一条命令多屏适配每种控制器改写数据布局换预设/模板即可逻辑不动数据格式受限于自己写的方式1...32 位每像素8/16/24/32 位数据垂直/水平字节排布压缩自己实现 RLE预设里开启 RLE 压缩字体逐字手画点阵选字符区块自动生成按需裁剪可复现性依赖个人笔记命令行参数即配方CI 里可重复仓库自带的测试样本见 tests/resources/samples/含旋转、翻转、平移各组对照图就是拿这些变换做过验证的 ✅如何接入CI流水线一条命令进构建把转换固化成脚本构建时资源永远和源码一致。GitLab CI 最小配置convert-resources: stage: build script: - ./lcd-image-converter --modeconvert-image --inputassets/logo.png --outputsrc/logo.c --doc-namelogo --preset-namelcdR4G5B4预设配置走--config-presets指向一份集中管理的预设文件预设与模板的完整实现见 classes/settings/presets/。字体同理把--mode换成convert-font即可。选型与避坑什么场景别用、最常翻车的点该用的场景资源烧进 ROM/RAM 的嵌入式显示单色 OLED、4 位灰度、TFT 都覆盖同一套资源要适配多款屏幕预设一次配置多平台复用别硬上的场景桌面/网页应用直接嵌 PNG 就行没必要过一遍指望它做运行时处理它是离线转换工具产出的是静态数组不是运行时图像库最常见的翻车点⚠️ 预设里的字节排布垂直/水平和数据宽度8/16/24/32跟实际屏幕控制器对不上 —— 数组能正常编译上屏就是花屏。应对办法第一次一定真机验证别只看编译通过可以用--modehex2bin把生成的 .c 转成裸 .bin直接在设备上比对字节序小细节--doc-name里不要带空格命令行模式下空格会被清掉导致校验失败另外提醒仓库里的命令行参数、预设名以当前版本源码为准升级大版本后建议重跑一次 CI 里的转换命令核对产物。把一张 PNG 变成能编译进固件的数组这件事从打开十六进制编辑器逐字节对变成了敲一条命令。工具替你管住了位重排、压缩和格式差异你只管把logo.c提交进版本库剩下的交给编译器。【免费下载链接】lcd-image-converterTool to create bitmaps and fonts for embedded applications, v.2项目地址: https://gitcode.com/gh_mirrors/lc/lcd-image-converter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表