JPEG图像原理与应用|库的移植

和其他相同图像质量的文件格式相比,JPEG格式的压缩比是最高的,也就是说在图像质量相差不大的情况下,JPEG文件所占的内存更小。所以JPEG图像一般适合进行网络传输。
由于JPEG格式的文件是经过压缩的,所以用户无法向访问BMP位图一样直接读取JPEG文件中的内容,而是需要使用对应的libjpeg解码库对JPEG文件进行解码,从而得到解码之后的RGB颜色分量,然后把解码之后的RGB颜色分量写入到LCD屏即可。
由于IJG独立小组不属于官方组织,也就是说libjpeg库不属于标准库,而属于第三方库,所以Linux系统并没有直接为用户安装libjpeg库,用户如果打算使用libjpeg库就需要完成库的移植工作。

库的移植:
1.下载需要移植的库的源码包,libjpeg库源码包在官网可以下载 www.ijg.org(一般搜索关键词lib+关键词)
2.解压压缩包,解压后找到自述文件README,打开README了解libjpeg库的使用规则
3.打开源码包中的install.txt的文本,学习libjpeg库的移植和安装的步骤,移植libjpeg的步骤分为三步:配置(./configure) + 编译(make) + 安装(make install)。
image
4.把下载好的源码包jpegsrc.v9f.tar.gz发送到linux系统的家目录下进行解压,注意不可以在共享文件夹进行解压
5.切换到解压后的jpeg-9f的文件夹内,然后输入指令配置libjpeg库,配置的时候需要使用一个叫做configure的配置文件,该配置文件有两个选项非常重要:--prefix 和 --host
image
如果之前执行过 configure 出现错误,残留文件可能影响后续,先清理:make distclean
然后重新执行配置(加上可能需要的环境变量,比如交叉编译的 CC 等,若系统里编译器名字就是 aarch64-linux-gnu-gcc ,可这样写):
./configure --prefix=/home/llx/libjpeg --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc
image
6.配置成功之后,会得到一个makefile脚本文件,此时可以完成移植的第二步:编译,在命令行输入指令:make ,该指令会自动执行makefile
image
7.编译通过之后,则可以完成libjpeg库的安装,此时在命令行输入指令: make install
image
8.安装完成后,可以在用户指定的安装路径中找到生成的libjpeg库的头文件和库文件,此时用户可以选择拷贝出来,就可以设计程序时使用。
image
9.把include文件夹和lib文件夹与自己的工程文件放在同一个路径,方便后期的工程维护

库的使用
image
image
image

为了可以把一张jpg图片显示在LCD上,所以需要把jpg图片进行解压,解压之后就可以得到图片内部的像素点的颜色分量,就可以把像素点的颜色分量向LCD的像素点写入。就需要掌握jpg图片的解压流程
解码流程:
(1)创建解码对象,并且对解码对象进行初始化,另外需要创建错误处理对象,并和解码对象进行关联。
image
(2)打开待解码的jpg图片,使用fopen的时候需要添加选项”b”,以二进制方式打开文件
image

(3)读取待解码图片的文件头,并把图像信息和解码对象进行关联,通过解码对象对jpg图片进行解码
image

(4)可以选择设置解码参数,如果打算以默认参数对jpg图片进行解码,则可以省略该步骤!
image

(5)开始对jpg图片进行解码,调用函数之后开始解码,可以得到图像宽、图像高等信息
image

(6)开始设计一个循环,在循环中每次读取1行的图像数据,并写入到LCD中,注意:转换算法需要用户自己设计。
image

(7)在所有的图像数据都已经解码完成后,则调用函数完成解码即可,然后释放相关资源!
image
image

posted @ 2025-07-30 22:09  Lè_Sage  阅读(67)  评论(0)    收藏  举报