JPG解码

支持芯片: ESP32-S3系列

int jpg_decode(int psramaddr,int size,int picn); 
//psramaddr:jpg未解码的源文件存储位置,系统规划的位置是0xA0000;
//size:jpg未解码源文件的尺寸大小
//picn:解码后的存储位置,图片编号2048开始
//返回jpg解码后的数据的大小

示例

int fp;
str s;
int  size;
str filename="/a.jpg";
size=getfileinfo(filename,1);    //获取文件长度
fp=fopen(filename,0x01);
if (fp!=-1){
    //文件打开成功
    psram_fread(fp,0xa0000,size);    //将JPG文件整个读入PSRAM 0xa0000处,此处正式JPG解码文件存储区
    jpg_decode(0xa0000,size,2048); //解码JPG到0号位置,该位置对应图片2048号
    p1.picn=2048;  //p1 是pic控件,修改picn属性可以更改图片显示
    fclose(fp);
}
存储编号 对应图片编号 存储空间大小 类型
0 2048 液晶屏像素 长X宽X2(字节) 固定位置
1 2049 液晶屏像素 长X宽X2(字节) 固定位置
2 2050 不固定大小 根据图片存储大小累积向后
3 2051 不固定大小 自动累计
4 2052 ...... ......
33 2082 不固定大小 自动累计

对于从TF卡读取的文件或从互联网下载的JPG文件,只能解码到2048 或2049 这两个固定位置,这两个位置存储大小正好可以放一个和屏幕分辨率一样的图片;而2050之后的图片是给flash中的JPG图片预留的。

注意