jpeglib的使用
1. 解压jpeglib
tar xvzf libjpeg-turbo-1.2.1.tar.gz
2. 阅读里面的说明文件,得到jpeg解压缩的一般步骤:
/*Allocate and initialize a JPEG decompression object // 分配和初始化一个decompression结构体
*Specify the source of the compressed data (eg, a file) // 提定源文件
*Call jpeg_read_header() to obtain image info // 用jpeg_read_header获得jpg信息
*Set parameters for decompression // 设置解压参数,比如放大、缩小
*jpeg_start_decompress(...); // 启动解压:jpeg_start_decompress
*while (scan lines remain to be read)
* jpeg_read_scanlines(...); // 循环调用jpeg_read_scanlines
*jpeg_finish_decompress(...); // jpeg_finish_decompress
*Release the JPEG decompression object // 释放decompression结构体
3. 配置jpeglib
./configure --help 获得./configure的使用,我们关心的是:
--prefix=PREFIX install architecture-independent files in PREFIX
[/opt/libjpeg-turbo]
这是jpeglib的安装目录,默认为/opt/libjpeg-turbo。
--host=HOST cross-compile to build programs to run on HOST [BUILD]
指定交叉编译,是arm-linux
4. ,mkdir tmp
5. ./configure --prefix=/home/zhu/system/libjpeg-turbo-1.2.1/tmp --host=arm-linux
6. make
7. make install
8. 将编译出来的头文件和库放到gcc编译器下面,这样就不用每次编译时指定头文件和库了
zhu@zhu-virtual-machine:~/system/libjpeg-turbo-1.2./tmp/include$ sudo cp * ~/system/usr/local/arm/4.3./arm-none-linux-gnueabi/libc/usr/include/
zhu@zhu-virtual-machine:~/system/libjpeg-turbo-1.2./tmp/lib$ sudo cp *so* ~/system/usr/local/arm/4.3./arm-none-linux-gnueabi/libc/armv4t/lib -d
9. 就像freetype一样,把所有的.so库文件拷到要挂接的根文件目录下的lib子目录下,结果运行程序出现如下错误:
./jpg2rgb: /usr/lib/libjpeg.so.62: no version information available (required by ./jpg2rgb)
10. 解决办法:
11. 虽然相应的库都安装好了,但编译文件时仍然要 -ljpeg.就和当初-lfreetype一样。
jpeglib的使用的更多相关文章
- windows下使用VS2010编译jpeglib
1.下载源代码下载地址:http://www.ijg.org/files/, 选择最新版本的windows版本压缩包,进行下载. jpegsr9a.zip 1042 Kb Su ...
- jpeglib使用指南
您可以到http://www.ijg.org/网站下载libjpeg的源码, IJG JPEG Library就是jpeg压缩库,是以源码的形式提供给软件开发人员的,当然在软件包里也有编译好的库文件, ...
- 算法库:jpeglib和pnglib安装配置
类似于OpenCV的安装配置.只不过OpenCV有编译好的,而jpeglib和pnglib需要自己编译.其实,若要跟踪OpenCV的源码或要使用OpenCV的扩展包,OpenCV也得自己编译. Ope ...
- (原)调用jpeglib对图像进行压缩
网址:http://www.cnblogs.com/darkknightzh/p/4973828.html.未经允许,严禁转载. 参考网站: http://dev.w3.org/Amaya/libjp ...
- 几个关于JPEGLIB库的博客
1.http://blog.csdn.net/huxiangyang4/archive/2010/07/12/5728888.aspx 我认为是最好的 2.http://blog.csdn.net/a ...
- 使用jpeglib库实现bmp转jpg
一.vc编译jpeglib库 1.下载源代码 下载地址:http://www.ijg.org/.注意:一定要下载win32 版本 2.编译源代码. A.解压源代码,修改源代码中jconfig.vc为j ...
- Linux 下V4l2摄像头采集图片,实现yuyv转RGB,RGB转BMP,RGB伸缩,jpeglib 库实现压缩RGB到内存中,JPEG经UDP发送功(转)
./configure CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld --host=arm-linux --prefix=/usr/loca ...
- configure: error: jpeglib.h not found.
编译出现错误: configure: error: jpeglib.h not found. 解决方法:yum install libjpeg libjpeg-devel -y libjpeg-dev ...
- Jpeglib读取jpg文件 【转】
http://blog.csdn.net/blues1021/article/details/45424695 整理自 : http://hi.baidu.com/lewutian/item/e8ee ...
随机推荐
- C#测试程序运行时间的方法
C#测试程序运行时间的三种方法如下: (1)Datetime DateTime dtBegin = System.DateTime.Now;... DateTime dtEnnd = System.D ...
- AngularJS 学习(-)Hello world
早期的AngularJS使我们的前端开发模式发生很大的变化,基使用MVC. Model - html 模板:Controller - js脚本; Model 来自于Web API 或其他Service ...
- poj 3162 树DP+单调队列
http://acm.hust.edu.cn/vjudge/problem/11552 http://blog.csdn.net/woshi250hua/article/details/7727677 ...
- switch 和 if...else if 的区别
为什么很多人用 if...else..if 而不使用 switch 1,if...else...if 只是单纯地一个接一个比较:if...else可能每个条件都计算一遍: 2,switch ...
- (C# 基础) 接口
接口是表示一组函数成员,而不实现成员的引用类型.类和结构可以实现接口. 例如BCL声明了一个叫做IComparable的接口,包含了一个CompareTo方法, 但没有实现其方法,用“:”结尾. pu ...
- jQuery 浮动导航菜单(购物网站商品类型)
单页面网页内容较多,页面长度较大,需要方便快速的在页面的不同位置进行定位,所以浮动菜单逐渐流行了起来,如下图 男装.女装.美妆等. 这种菜单功能分为两部分: 1.点击菜单项,网页滚动到对应位置,可简单 ...
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
在Android的View中getX getRawX获取的坐标是不一样的,只是相对比照的对象不一样而已. 1.在View中: getX()是表示Widget相对于自身左上角的x坐标,而getRawX ...
- 轻松解决 Eclipse Indigo 3.7 中文字体偏小,完美 Consolas 微软雅黑混合字体!(转)
在 Windows 7 下初始后化,发现界面变化不大,但中文字体却面目全非,小得根本看不见,而且也看起来很不爽.其实这是 Eclipse 的默认字体换了,以前的一直是 Courier New ,这次e ...
- c\c++数据类型存储
C四个 C++五个 一. 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量 ...
- javaWeb上移下移(SpringMVC+Mabits+MySql)
文章已移至:https://blog.csdn.net/baidu_35468322/article/details/79643356 移动之前: 移动之后: 1.控制层 /** * 修改排序 * * ...