
客户在使用 TouchGFX开发 GUI应用的时候, 需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH来存储图片资源. 在软件研发后期发现现有的 FLASH存储空间不够, 因此提出是否可以使用 TouchGFX来减少图片资源的存储空间且实现同样的 UI效果. 01调研 # ?' S& J( I) p# o4 c7 K $ t8 k! Q7 S6 `9 K: m) [ # 在硬件方面 MCU 的图像处理加速器DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染: ![]() 4 P- ^- q: K7 d/ }/ W/ `+ D # 从软件方面 最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 .2 B) o! R4 \1 b; m; l7 N; X3 E # 比如下图(宽 x 高=200x200) " {, [( e5 b. N+ B: P 1. 这幅图是由 256 种颜色组成的.' ? R; {( O m. P 2. 且每种颜色都针对图像进行了优化. 3. 256 种索引颜色中的每一种都是 24 位颜色.1 }; l/ T% k, L, l0 K5 f! U$ i' z+ Z' j ![]() 为了在 LCD 上显示这张图, TouchGFX Designer 在生成资源文件时,生成的资源文件大小:. u8 p% n: s: T% w( A ) Q! x5 _! w. X4 x8 | a4 |# b 1. L8_ARGB8888 : 200x200x1byte+256x4byte=41024bytes: p8 }5 E) U @; s2 n7 Z- o: O =>200x200 个 8bit 的颜色索引+256 个 32bit ![]() 2. ARGB8888 :, f' Y) i$ Z( z }2 m9 D; p 200x200x4byte=160000bytes. =>200x200 个 32bit 的颜色# H% v5 m2 f2 k* t# n ; y) \) p9 s& {8 z 在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在Image 页面中选择正确的格式 : ![]() / x$ a8 c9 M! K3 B8 T% p 注意: 如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如 + v; m, X& B) v+ B( v8 u, Y paint.net/imagemagick)将颜色数减少至少于 256 色 : . d7 N$ j+ K: L# `2 m( Q" }1 h- O , P/ c) ~; C! @$ A8 A9 W Paint.net: ![]() Image Magick (www.imagemagick.org): ![]() , c$ L3 f$ G- G' A/ U+ ? 02结论 8 _, k, n* k5 p5 _ # O; a* R2 }7 u. p$ c" H" J 图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200): ![]() 由于 TouchGFX 对于 L8 格式还可以支持 L8_ARGB8888,因此可以与 ARGB8888 等格式的图像进行混合渲染,因此特别适合作为图标等颜色数少但是素材丰富的应用.: R' ?7 A( A5 D# x+ ]6 v. i8 i 综上可以看出,采用 TouchGFX4.12.3+L8 格式 : # O- e9 u; q2 N3 d1 t8 ~) } x G 1. 相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 . 2. 同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能.& |- ]0 ^! F/ R! X : O- U$ n* g8 I7 h; c # M& u6 p& O H1 d; d/ e* C 03处理 1 f+ e* B) r' }2 W" m. U; G8 C2 u 因此我们建议客户选择使用 TouchGFX4.12.3+L8 的功能,通过重新优化部分资源文件,减少图片资源的存储空间来实现客户的 UI 效果,并且改善了系统的实时性能.8 I5 F0 c6 g, A* N |
打卡,学习! |
TouchGFX应用移植自定义屏幕
汇编浮点库qfplib移植STM32F769I-DISCO开发板与硬件浮点运算性能测试对比
【GUI板免费申请活动】【圣诞GUI】使用F746-DISO基于TouchGFX的圣诞树
【圣诞专享活动】使用TouchGFX做GUI显示:圣诞快乐&Merry Christmas!
【管管推荐】基于STM32-GUI经验分享篇
STM32F103移植LittlevGUI代码
TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI!
【STM32H7S78-DK】汽车仪表系统
【STM32H7S78-DK评测】TouchGFX (QR Code)二维码生成器
【STM32H7S78-DK评测】-5 LVGL&DMA2D DEMO测试