JPG图片下载方法

时间:2024-03-22 11:22:09

JEPG图片/图标下载方法
目标功能:能够更新指定大小的图片到屏幕上的指定位置。
目前迪文T5UID1(D3)的屏幕是支持区域图片(.JPEG格式)通过串口下载进行更新到指定的坐标位置,通过给系统变量接口0xA6(JPEG_Download)下发指令。
JPG图片下载方法
但目前T5UID2的产品不支持此功能。(D1、D3产品都有3页显存,有个专门的背景页所以能够支持此功能,而D2只有2页显存。)JPG图片下载方法JPG图片下载方法
为实现目标功能首先将目标素材(图片文件压缩成较小的.jpeg格式)用重命名的方法改成.bin格式文件(用UE软件打开可以预览图片的所有数据)。
JPG图片下载方法
在将图片(.bin格式)文件通过sd卡下载到屏幕之前,要确保目标文件不会与其他字库,图标库文件产生冲突(实例中将目标文件重命名为“100_系统休眠.bin”)。
目标文件下载完成后,通过对0xAA(NandFlash_RW_CMD)系统变量接口下发指令,将目标文件读到Flash存储器中。
测试用例“100_系统休眠”为100x100,2.25KB大小的图片文件。
JPG图片下载方法
指令如下:
5A A5 0F 82 00AA 5A 01 64 00 00 00 8000 0480 0000
帧头 指令长度以及0x82写指令 对应Nand Flash的系统变量接口 启动一次读数据库操作 字库ID(对应100_系统休眠.bin) 字库内的数据起始位置(从0位置开始) 1.读取到数据变量从8000开始的空间
2.读取的数据长度
3.未定义,写0000
通过0x83指令读对应的数据变量地址,可以查看目标文件是否已经读到对应的变量地址中。
5AA5 04 83 8000 64
帧头 指令长度以及0x83读指令 所要读的变量空间的起始地址 读取的数据长度
发出指令之后,串口收到数据返回。
JPG图片下载方法
读到串口返回的数据,说明目标文件(100_系统休眠.bin)已经成功地更新到目标数据变量空间,通过对JPEG_Download(0x6A)系统变量接口下发指令,将更新的目标文件显示在当前页面上。
5AA5 0B 82 00 A6 5A 01 8000 0000 0000
帧头 指令长度以及0x82写指令 JPEG_Download
对应的系统变量接口 5A:启动一次图片下载
01:更新到当前页面 存储JPEG 文件的数据变量空间首地址 图片在背景页面显示位置的左上角坐标
最后效果如下图所示:

JPG图片下载方法
补充:
1.拓展来讲,NandFlash不仅仅只支持图片的更新,同样也可以用来更新字库,音乐,图标库等(以32Kbyes 块为基准)。
2.目前T5UID2的屏没有开放和D1一样的 JPEG的0x01下载模式,所以目前针对T5UID2通过串口更新指定大小,位置的图片(图标)到屏幕上显示的方法只能用0x02模式将图片存储在Flash再通基本图形显示空间,通过指令剪切对应大小的图片
到当前页面。
JPG图片下载方法
其具体步骤概括如下:
1)将目标显示的图片文件整合到和工程文件相同大小的图片上(例:目标图片大小为100X100,工程图片文件大小为800x600)。
2)在工程文件里添加一个基本图形显示空间。并更新到屏幕中。
3)将图片文件更新到屏内,将图片文件改为.Bin格式。将图片的数据分成每次发送250字节,用SSCOM32串口发指令,模拟数据下发。
4)通过A6指令的02模式将图片更新到Flash。
5)再通过基本图形显示控件的0x0006指令,将目标图片给剪切粘贴到目标位置。
JPG图片下载方法
3.如过不要求必须通过串口更新,解决方法可以更为简单:
1)将小于64KB的图片改成.bin格式,然后将图片数据复制到22文件较大的数据变量地址,通过sd卡更新到屏内。再通过基本图形的剪切与复制指令实现目标功能。
2)将所有的目标显示效果制作成图标库更新到屏内,同样是用到基本图形显示控件,0x0007指令。
JPG图片下载方法
4.预览的图片都保存到FLASH,再用基本图形剪切显示的话,会有预览写FLASH次数问题,只有6万次寿命。
5.图片文件传输速率问题,当波特率设置为115200时,传输20KB大小的图片文件,仅传输速度就要2s左右,还需加上屏幕解码显示的时间。