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图片预留的。
注意
- jpg解码源文件最大不得超过256K