JPG解码实际需求
- 系统图库支持JPG直接文件存储,可以大幅度减少图库占用flash的空间;
- 详见:图库jpg文件直接存储
- 通过TF卡的文件系统读取jpg文件,解码并显示,可以制作类似于电子相框之类的应用;
- 详见:TF卡读取jpg文件
- 通过http下载互联网上的图片,并显示,可以广泛用于互联网应用;
- 详见:互联网下载jpg文件
备注:jpg解码需要使用PSRAM内存,因此只有ESP32芯片方案的串口屏才支持;
具体的实现方案
jpg图像使用基本分为两种情况:一种是存储在flash的基础图像;一种是从TF卡或者互联网获取的图像;
存储编号 | 对应图片编号 | 存储空间大小 | 类型 |
---|---|---|---|
0 | 2048 | 液晶屏像素 长X宽X2(字节) | 固定位置 |
1 | 2049 | 液晶屏像素 长X宽X2(字节) | 固定位置 |
2 | 2050 | 不固定大小 | 根据图片存储大小累积向后 |
3 | 2051 | 不固定大小 | 自动累计 |
4 | 2052 | ...... | ...... |
33 | 2082 | 不固定大小 | 自动累计 |
解码后的图片从2048图片编号开始;对于TF卡和互联网获取的图像文件先存储到PSRAM扩展内存中,然后通过解码语句将图像解码到2048 或2049 这个固定位置,然后使用pic(x,y,2048);或pic(x,y,2049);显示;
而flash图库中的jpg图,则直接在显示的时候解码到从2050开始的连续存储空间中并作为缓存,再次调用的时候直接就直接使用;当然当切换页面的时候时,缓存被清空;
缓存大小是有限制的,因此当缓存用完的时候,系统会自动覆盖最后一幅图对应的缓存;