使用libjpeg库将bmp图片压缩成jpg

在进行图片压缩编程之前必须先移植第三方库libjpeg.so。

我用的是jpegsrc.v8c.tar.gz版本,具体的安装过程如下:

1、解压:#tar -xzvf jpegsrc.v8d.tar.gz

2、进入解压后的目录:#cd jpeg-8c

3、创建文件夹,用于存放生成的库文件和相关头文件:#mkdir /root/jpeg_8

4、配置编译工具和生成目标文件该存放的文件夹:#./configure --prefix=/root/jpeg_8 --host=arm-cortex_a8-linux-gnueabi

“/root/jpeg_8”这个文件夹根据自己需要设置,编译工具也要根据需要设置:arm-cortex_a8-linux-gnueabi


libjpeg库生成了就可以开始图片压缩的编程了,如下:

1、图片的压缩需要一个jpeg对象,jpeg对象是一个jpeg_decompress_struct结构体,同时还需要一个错误处理结构体对象,该对象是jpeg_error_mgr。

struct jpeg_compress_struct toWriteCinfo;  //定义jpeg对象
struct jpeg_error_mgr jerr; //定义错误处理对象

2、将错误处理对象绑定在jpeg对象上

toWriteCinfo.err = jpeg_std_error(&jerr); 

3、初始化jpeg对象

jpeg_create_compress(&toWriteCinfo);  

4、确定要用于输出压缩后的jpeg的数据空间,这里用unsigned char **jpeg_buf类型的指针,unsigned long int *jpeg_len指针指向的空间用于存储jpeg图片的大小   

jpeg_mem_dest(&toWriteCinfo, jpeg_buf, jpeg_len);

5、设置压缩参数,主要参数有图像宽、高、色彩通道数(1:索引图像 3:其他),色彩空间(JCS_GRAYSCALE表示灰度图,

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值