移植JPEG库到Linux,并进行运用
一、库的移植
1、先去官网(www.ijg.org)下载需移植的库的源码包,注意好版本与系统
2、解压下载的源码包,并打开README.md阅读,了解libjpeg库的使用规则
3、易得需打开install.txt等文件进一步阅读
易知移植libjpeg需要三步:配置(./configure)+编译(make)+安装(make install)
4、把下载好的源码包jpegsrc.v9f.tar.gz(以此版本为例)发送到linux家目录进行解压(注意不能在共享文件夹进行解压),解压生成了jpeg-9f

5.cd到解压后的jpeg-9f文件夹内,输入上述指令,配置时需用一个名为configure的配置文件,用于生成makefile脚本

6.配置成功后得到一个makefile脚本文件,此时可开始移植的第二步:编译,输入指令make,会自动执行makefile
7.编译成功后则可进行最后一步:安装,输入指令:make install

8.安装完成后,可以在用户指定的安装路径中找到生成的libjpeg库的头文件和库文件,此时用户可以选择拷贝出来,就可以设计程序时使用。

9.把include文件夹和lib文件夹与自己的工程文件放在同一个路径,方便后期的工程维护!

二、库的使用
1.依据上诉readme.md的指引,打开libjpeg.txt查看如何使用

2.解码流程
(1)创建解码对象,并且对解码对象进行初始化,另外需要创建错误处理对象,并和解码对象进行关联。
(2)打开待解码的jpg图片,使用fopen的时候需要添加选项”b”,以二进制方式打开文件!
(3)读取待解码图片的文件头,并把图像信息和解码对象进行关联,通过解码对象对jpg图片进行解码

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

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

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

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

3.接口设计


4.程序编译
由于libjpeg库并不是安装到Linux系统的默认目录中,而是单独拷贝到工程目录或其他指定位置,因此编译器无法自动找到其头文件和库文件。为了使程序能够顺利编译和链接,需要在编译时通过相应的编译选项指定libjpeg的路径。其中,常用的编译选项如下:
5.下载调试
编译通过的可执行文件是需要在开发板上进行执行,所以在开发板上运行程序的时候是需要调用libjpeg库文件,所以需要确保在开发板的Linux系统中的 /lib目录下要有libjpeg.so.9库文件存在,否则程序运行会报错:error while loading shared libraries。


浙公网安备 33010602011771号