客户在使用 TouchGFX开发 GUI应用的时候, 需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH来存储图片资源. 在软件研发后期发现现有的 FLASH存储空间不够, 因此提出是否可以使用 TouchGFX来减少图片资源的存储空间且实现同样的 UI效果. 01调研 # 在硬件方面 MCU 的图像处理加速器DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染: # 从软件方面 . W7 S3 o: | K$ E, L. A5 k 0 _' O& g7 C! h: l 最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 .( [, f P7 m, v% F7 f # 比如下图(宽 x 高=200x200) * V. V& @8 h% L6 D. c, k# T" g 1. 这幅图是由 256 种颜色组成的. 2. 且每种颜色都针对图像进行了优化.) M9 T( @% w0 L2 Z 3. 256 种索引颜色中的每一种都是 24 位颜色.! ^# h% a0 X0 U2 B4 H& ? + G1 \( Q( f, _+ W Q 1. L8_ARGB8888 :) k& @% S( b; I4 K. J) U5 \/ z 200x200x1byte+256x4byte=41024bytes3 u7 p# b8 N% I1 q" |% @ & Y: K( z: L3 [9 A) i =>200x200 个 8bit 的颜色索引+256 个 32bit, p( a9 O+ l% B/ S% m- w 2. ARGB8888 :+ M3 P- D; s5 w# c 200x200x4byte=160000bytes. =>200x200 个 32bit 的颜色 2 g6 b0 u1 v1 C2 H8 Y/ _) a 在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在Image 页面中选择正确的格式 : 注意 :如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如 5 z: o% f( J5 H+ A5 r + ?, X7 }% C/ a% e0 D paint.net/imagemagick)将颜色数减少至少于 256 色 :- j/ {) g0 F e! e, M 2 k, \: D A, t- O' w4 Q7 N; ~ F7 b/ T& ]% `( E* x Paint.net: h6 _. E/ z+ l) X$ i8 j 02结论 0 o/ N4 S- ^2 C5 a1 D8 h/ _- c 图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200):& M: I5 h$ V& X* C( [; v4 u. n( s % A% K; q1 g; o& b/ f5 M% a 综上可以看出,采用 TouchGFX4.12.3+L8 格式 : i; |6 l8 G& } ; y8 U6 X5 { o- l. G 1. 相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 . 2. 同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能. 03处理; v5 q+ M* p( k0 k/ M/ K+ R 因此我们建议客户选择使用 TouchGFX4.12.3+L8 的功能,通过重新优化部分资源文件,减少图片资源的存储空间来实现客户的 UI 效果,并且改善了系统的实时性能. - S3 u" I1 s$ P |
学习6 Y8 w0 R; T: P. T- Y |
【STM32H7S78-DK】汽车仪表系统
【STM32H7S78-DK评测】TouchGFX (QR Code)二维码生成器
【STM32H7S78-DK评测】-5 LVGL&DMA2D DEMO测试
【STM32H7S78-DK评测】有点艰难的亮屏
【STM32H7S78-DK评测】TouchGFX 按钮操作-点亮LED
有奖直播 | STM32图形解决方案,让你的产品轻松的脱颖而出
【NUCLEO-H533RE评测】4、移植TouchGFX
[NUCLEO-C031C6评测] 驱动LCD 第三步 显示颜色块
【经验分享】stm32基于TouchGFX的GUI开发(八):STM32H743+驱动SPILCD屏幕(ST7789V2)
TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI!