 MCU 的 C 數(shù)組)
LCD Image Converter 上手指南一條命令把 PNG 變成能燒進(jìn) MCU 的 C 數(shù)組【免費(fèi)下載鏈接】lcd-image-converterTool to create bitmaps and fonts for embedded applications, v.2項(xiàng)目地址: https://gitcode.com/gh_mirrors/lc/lcd-image-converterLCD Image Converter 是一個(gè)嵌入式圖像轉(zhuǎn)換、LCD 位圖轉(zhuǎn)換工具輸入 PNG輸出能直接編譯進(jìn) MCU 的標(biāo)準(zhǔn) C 源文件幫你省掉手算像素排布、手寫(xiě)壓縮代碼的那幾天。它幫你省掉的活手動(dòng)把 LCD 位圖轉(zhuǎn)成 C 數(shù)組場(chǎng)景是這樣的你手上有一張 240×320 的 UI 圖標(biāo) PNG要燒到 STM32 的 TFT 屏上。老路子里你得先弄清楚屏幕控制器怎么打包像素——RGB565、每 16 位一個(gè)像素、兩個(gè)像素塞進(jìn)一個(gè) 32 位字再?zèng)Q定字節(jié)序是大端還是小端想要壓縮還得自己寫(xiě) RLE自己處理游程邊界等 C 數(shù)組敲完只要排布錯(cuò)一位整屏花屏再?gòu)念^查。這個(gè)工具把這些活收進(jìn)一條命令。你選一個(gè)預(yù)設(shè)預(yù)設(shè)里定義了像素格式、掃描方向、字節(jié)序這些底層細(xì)節(jié)給出輸入輸出路徑拿回一個(gè) .c 文件直接進(jìn)工程。環(huán)節(jié)手動(dòng)做用它做像素排布、字節(jié)序翻控制器手冊(cè)自己寫(xiě)打包邏輯一個(gè)預(yù)設(shè)名搞定RLE 壓縮自己實(shí)現(xiàn)算法、自己處理邊界內(nèi)置開(kāi)關(guān)一個(gè)參數(shù)輸出 C 數(shù)組手敲十六進(jìn)制位數(shù)一多必出錯(cuò)標(biāo)準(zhǔn) C 源碼改圖重跑即可最值錢的 3 個(gè)能力RLE 位圖壓縮位圖縮到原來(lái)的 40%65%它做了什么對(duì)圖像中連續(xù)相同的像素段記錄值 次數(shù)數(shù)據(jù)塊支持 8/16/24/32 位壓縮邏輯在classes/compression/rlecompressor.cpp里最少相同像素?cái)?shù)閾值可調(diào)——閾值大一點(diǎn)壓縮率高解碼稍復(fù)雜。你拿到什么大面積純色背景的位圖嵌入式 UI 里最常見(jiàn)的類型通常能壓到 40%65% 的體積純色區(qū)域越多省得越多flash 預(yù)算緊張時(shí)這筆錢很實(shí)在。一條命令輸出標(biāo)準(zhǔn) C 源碼它做了什么classes/parser/下的轉(zhuǎn)換引擎負(fù)責(zé)全部底層臟活——像素格式轉(zhuǎn)換、位級(jí)打包、掃描方向、字節(jié)序大小端都支持像素深度 132bpp 全覆蓋輸出可以是 .c 源碼也可以是二進(jìn)制文件。你拿到什么生成的文件直接編譯進(jìn)工程數(shù)組名由 doc-name 控制格式不符合你的屏幕庫(kù)時(shí)用 template 參數(shù)掛自定義模板。UI 改版后重跑一次命令數(shù)組自動(dòng)重新生成不用碰任何十六進(jìn)制。MCU 字體按需生成只燒用到的字符它做了什么把指定字體、指定字號(hào)的字符逐個(gè)柵格化成位圖--chars-list參數(shù)讓你精確指定包含哪些字符支持 UTF-8 編碼和完整 Unicode 范圍。你拿到什么設(shè)備只顯示數(shù)字和幾個(gè)符號(hào)時(shí)整份 ASCII 字庫(kù)純屬浪費(fèi)內(nèi)存。按需生成一般能把字庫(kù)體積砍掉一半以上省下的 flash 是實(shí)打?qū)嵉摹W钚】膳芡窂? 步把 PNG 轉(zhuǎn)成 C 數(shù)組你只需要 ①②③① 拿到程序用官方下載或自己編譯git clone https://gitcode.com/gh_mirrors/lc/lcd-image-converter后執(zhí)行qmake make② 配好一個(gè)預(yù)設(shè)在圖形界面里選像素格式、掃描方向、字節(jié)序存?zhèn)€名字③ 跑這條命令lcd-image-converter --modeconvert-image \ --inputicon.png \ --outputicon.c \ --doc-nameicon \ --preset-namelcdR4G5B4跑完打開(kāi) icon.c就是能直接用的 C 數(shù)組。什么場(chǎng)景值得接 怎么配場(chǎng)景關(guān)鍵配置預(yù)期效果低功耗單色屏1bpp 單色預(yù)設(shè) RLE 抖動(dòng)存儲(chǔ)比不壓縮再省約 30%STM32 / ESP32 的 TFT16bit RGB565 預(yù)設(shè)字節(jié)序?qū)R控制器一條命令出片像素排布零調(diào)整彩屏但 flash 緊張24bit RGB888 RLE選 32 位數(shù)據(jù)塊大面積純色區(qū)域省一半以上狀態(tài)欄、數(shù)字顯示字體按需生成--chars-list只燒用到的十幾個(gè)字符UI 迭代頻繁命令行 預(yù)設(shè)復(fù)用改完圖重跑命令數(shù)組自動(dòng)重建值不值得用看這一節(jié)就夠適合直接用需要先驗(yàn)證屏幕像素格式是常見(jiàn)的 1/4/8/16/24/32bpp控制器打包方式特殊先轉(zhuǎn)張小圖對(duì)著手冊(cè)核對(duì)輸出十六進(jìn)制圖像更新頻繁想徹底告別手敲十六進(jìn)制需要非常規(guī)深度或自定義輸出結(jié)構(gòu)先自己試寫(xiě)模板字體只用到有限字符集中文界面字符量大先生成一遍確認(rèn)總尺寸在 flash 預(yù)算內(nèi)如果項(xiàng)目就是給 MCU 燒位圖和字庫(kù)拿一張樣圖跑一遍核對(duì)字節(jié)序和輸出格式對(duì)得上就可以停掉手敲十六進(jìn)制了。【免費(fèi)下載鏈接】lcd-image-converterTool to create bitmaps and fonts for embedded applications, v.2項(xiàng)目地址: https://gitcode.com/gh_mirrors/lc/lcd-image-converter創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考