
客户在使用 TouchGFX开发 GUI应用的时候, 需要很多的图片资源来呈现友好的人机交互功能, 因此外扩了一个 FLASH来存储图片资源. 在软件研发后期发现现有的 FLASH存储空间不够, 因此提出是否可以使用 TouchGFX来减少图片资源的存储空间且实现同样的 UI效果.0 Z' E% A7 b# `0 C$ ]; } i![]() 01调研2 g# |. w' D% f9 T ) d" ~% H8 d1 U2 f# g4 ] H F$ q # 在硬件方面 2 A6 O6 A; k! ` }* g ) u% f! _' A; |+ } MCU 的图像处理加速器DMA2D 中的调色板的颜色格式 , 支持 L8 格式的图层之间的渲染: ![]() # 从软件方面 最新的 TouchGFX4.12.3 开始, 可以利用了 DMA2D 的调色板功能对图片的资源进行优化 . # 比如下图(宽 x 高=200x200) Y( X& U# w4 s. T 1. 这幅图是由 256 种颜色组成的. 2. 且每种颜色都针对图像进行了优化. 3. 256 种索引颜色中的每一种都是 24 位颜色.+ N3 z* S# ^% W2 ] ![]() 1. L8_ARGB8888 :" j# q0 \% s7 u, i/ W% M5 u 200x200x1byte+256x4byte=41024bytes: _( f" c0 [) K3 N% N* b 2 e! G! F2 s8 s& [6 D! ]! | =>200x200 个 8bit 的颜色索引+256 个 32bit ![]() . s8 b5 c6 \5 j7 W8 l/ X' m h( [ 2. ARGB8888 : 200x200x4byte=160000bytes.; n" c0 R7 M6 K8 ] =>200x200 个 32bit 的颜色9 P+ K$ H- p0 _6 F2 G+ }7 K9 a+ F 6 ~" ~# ^9 `: C 在 TouchGFX 中使用 L8 Image ,只需要将 L8 的图片拖入到 TouchGFX Designer 中,然后在Image 页面中选择正确的格式 :" L9 `* R; e# P: L, z- X( }6 i ![]() 注意 :如果图片超过 256 颜色,转换工具就会报错,因此可以使用图片工具(如; I+ S, c0 G4 u b9 | + [. l: i [1 I4 }$ ? ( G+ M4 X( \/ [" L/ }' w) k paint.net/imagemagick)将颜色数减少至少于 256 色 :; ]$ ^1 M4 K% r& V2 e) X Z' n' i( I 9 c9 C, n, H2 M9 S* C Paint.net:- h, V: L& y% O ![]() ![]() 02结论9 ~ V8 j( ^7 v6 R & S, Q% ?' O Z. u6 i+ B 0 b, S. S$ a' \- h 图像使用 L8 格式时占用的 flash 大小显著低于标准 24 位格式(RGB888)的原始图像。下表列出了这三种不同调色板格式的具体图像的 flash 使用情况(图片分辨率 200x200): ![]() / U/ o; @) |) v9 L1 i" E 综上可以看出,采用 TouchGFX4.12.3+L8 格式 : ! J# b9 C4 D, E; O 1. 相比较 ARGB8888 像素格式, L8 大幅降低了资源文件的大小, 从而降低对存储芯片的需求 . 2. 同时由于图片像素信息大幅减少,读写一张图片的速度也大大提高, 也提高了系统实时性能. ; y, c3 s" u, x# Q0 z8 A 03处理 4 U! H) ~, i0 @1 c" D1 a 因此我们建议客户选择使用 TouchGFX4.12.3+L8 的功能,通过重新优化部分资源文件,减少图片资源的存储空间来实现客户的 UI 效果,并且改善了系统的实时性能.3 s0 d9 W/ i; }$ t5 a |
学习![]() |
【STM32H745I-DISCO】基于TouchGFX的工业控制器界面设计
【STM32L562E-DK】健康手环基础界面开发(二)—— GUI移植
TouchGFX应用移植自定义屏幕
【GUI板免费申请活动】【圣诞GUI】使用F746-DISO基于TouchGFX的圣诞树
【管管推荐】基于STM32-GUI经验分享篇
TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI!
【STM32H7S78-DK】汽车仪表系统
【STM32H7S78-DK评测】TouchGFX (QR Code)二维码生成器
【STM32H7S78-DK评测】-5 LVGL&DMA2D DEMO测试
【STM32H7S78-DK评测】有点艰难的亮屏