设为首页 加入收藏

TOP

使用libjpeg对图像进行压缩
2014-11-24 07:43:26 来源: 作者: 【 】 浏览:0
Tags:使用 libjpeg 图像 进行 压缩

libjpeg 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。Libjpeg不仅可以把bmp格式转化成jpg格式,还支持其他格式的转化成jpg格式(例如ppm,gif,targa,rle等)。


转化流程如下:



(1) 分配和初始化一个JPEG压缩对象


在libjpeg中,JPEG压缩对象被定义为“struct jpeg_compress_struct”(这个结构体内部有一些子结构体,这些子结构体时通过“malloc”来分配空间的,我们的程序不会直接使用这些结构体)。


我们还需要定于错误处理器。这里我们仅使用默认的错误处理器,默认的错误处理器会把警告/错误信息输出到stderr,如果出现致命错误,将会调用exit()退出程序。


绑定错误处理器的代码如下:


struct jpeg_compress_struct cinfo;


struct jpeg_error_mgr jerr;


...


cinfo.err = jpeg_std_error(&jerr);


jpeg_create_compress(&cinfo);


jpeg_create_compress会分配一小段内存,如果我们机器内存过少则会分配失败。在这种情况下error handler会处理错误并退出程序。这就是为什么error handler为什么需要首先进行初始化的原因。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android 编译libjpeg-turbo 下一篇Android 编译libjpeg

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)