嵌入式 linux 移植修改后的libjpeg 实现内存中解码
1、修改libjpeg源码,使之实现内存解码。
修改libjpeg中读取或者输出jpeg文件的函数接口文件jdatadst.c和jdatasrc.c见下面这篇帖子。
http://blog.163.com/seven_7_one/blog/static/1626064122010113111725461/
修改后,jpeg_stdio_des和jpeg_stdio_src函数我们就修改完毕了。但是在libjpeg库中有两个测试文件cjpeg.c和djpeg.c会调用原来的jpeg_stdio_des和jpeg_stdio_src函数,这在编译时会报错的,所以我们需要自己将cjpeg.c和djpeg.c里边的jpeg_stdio_des和jpeg_stdio_src函数调用注释掉,或者修改。
然后就可以配置libjpeg库了。
如果自己不想修改,后边我会上传源码。
2、配置libjpeg库参见下面这篇帖子
http://www.cnblogs.com/pang1567/p/3677851.html
3、配置完成后,即可编译
make和make install
生成了libjpeg.so.62.0.0,这就是我们交叉编译好的动态库。拷贝到测试工程目录下,假如我们测试文件为main.c
执行如下命令 arm-linux-gcc main.c -o main -L./ -ljpeg -Wl,-rpath=./ 生成了可执行文件。
转到开发板目录下,执行此可执行文件。这里要注意,需要把自己的动态库也拷贝到可执行目录下,或者拷贝到开发板/usr/lib目录下。即可执行。
4、源码和动态库下载地址
这里我测试的libjpeg库的版本为 6b 。
代码下载地址:http://download.csdn.net/detail/pang1567/7241289
很多内容都是学习网上大牛的帖子来的,自己完成了老板要求的任务,供大家参考学习,不足之处,请指正~