admin管理员组

文章数量:1531237

2024年5月7日发(作者:)

安富莱STM32-V5开发板STemWin教程

第12章 JPEG图片显示

本期主要讲emWin支持的JPEG图片的显示,官方支持的主要有两种显示方法,一种是从外部存储器

读取数据到内部存储器后,再显示图片,这种的显示速度要快些。另一种方法是直接从外部存储器读取数据

并显示,这种办法的好处就是不要大的RAM需求,每次读取一些数据显示一次,坏处就是显示速度比较的

慢。

由于官方提供的JPEG的显示方法比较耗RAM,这里将2MB的外部SRAM做为emWin的动态内存。

12. 1 JPEG图片支持

12. 2 绘制已经加载到存储器的JPEG图片

12. 3 绘制无须加载到存储器的JPEG图片

12. 4 实验总结

12.1 JPEG图片支持

JPEG(读音为 “jay-peg”)是全彩和灰度图像的标准压缩方法。JPEG用于压缩 “真实世界”的景象、

线条画、卡通,其他非现实图像并不是其强项。JPEG会有损耗,意指输出图像与输入图像并不完全相同。

因此,如果您必须达到完全相同的输出位,则不能使用JPEG。不过,对于常见的照片图像,可以得到非常

好的压缩级别,看不出变化。并且如果您能容忍低质量的图像,则可以实现相当高的压缩级别。

这里有一点要特别的注意:出于法律原因,不得分发JPEG算术编码变体的代码。JPEG规范的算术编

码选项似乎属于归IBM、AT&T和Mitsubishi所有的专利。因此,从法律上讲,如未获得一个或多个许可,

则不能使用算术编码。因此,尚未包含对算术编码的支持。(由于算术编码相对于未获专利的Huffman模

式仅具有限界收益,因此不太可能有太多实施支持它。)JPEG文件支持不包含提供标准中定义的层次式或无

损流程。

12.1.1 JPEG格式图标转换

某些情况下,将JPEG文件作为C文件添加到项目中非常有用。这时,首先需要将JPEG文件转换为

C文件。使用emWin随附的工具可完成此任务。这个工具在STemWin软件包里面

没有,需要到MDK安装目录里面找。下面我们下图JPEG格式的图片转换成C文件。

第 1 页 共 9 页

安富莱STM32-V5开发板STemWin教程

 打开软件加载上面的图片

 加载后点击Convert即可,点击后没有任何现象,直接去图片所在的文件夹找即可

实际运行代码如下(图片数据就不贴出来了,看本期教程配套的例子)

void MainTask(void)

{

GUI_Init();

GUI_JPEG_Draw(_ac11, sizeof(_ac11), 0, 0);

while(1)

{

GUI_Delay(100);

}

}

实际显示效果如下:

第 2 页 共 9 页

本文标签: 图像图片显示文件算术