首页 » 信息技术 »

用cjpeg对jpg图片进行再次压缩

2019年6月7日 / 84次阅读
图片处理

cjpeg工具来自ijg组织的libjpeg工具包,编译安装这个组织提供的jpeg工具源码,就可以得到cjpeg工具。这部分请参考:Linux编译安装libjpeg的方法

jpg,或者jpeg本就是一种图片压缩格式,使用jpegtran只能对其进行无损压缩,即去掉各种meta元数据。而cjpeg这个工具,是用来对非jpg格式的图片,进行压缩操作,得到jpg图片。

可能有些工具,可以对jpg直接进行再次压缩,其算法可能还是私有的,这部分我不太懂,只是用过一些这样的工具,上传jpg,下载得到的还是jpg。

还有另外一个思路,就是本文的主题,使用djpeg对jpg图片解压,比如得到一个bmp图片,这个bmp图片会很大,然后再使用cjpeg重新对这个bmp图片进行压缩,得到一个新的压缩质量不一样的jpg。

举个例子,有个tt.jpg图片,我们先解压成bmp,然后重新对其进行jpg压缩:

[xinlin@promote test]$ djpeg -bmp -outfile tt.bmp tt.jpg
[xinlin@promote test]$ ll
total 588
-rw-rw-r--. 1 xinlin xinlin 561734 Jun 7 12:01 tt.bmp
-rw-rw-r--. 1 xinlin xinlin 33287 Jun 7 10:19 tt.jpg

可以看到tt.bmp比tt.jpg要大很多,现在开始对tt.bmp重新做jpeg压缩:

[xinlin@promote test]$ cjpeg -quality 75 -optimize -progressive -outfile tt75.jpg tt.bmp
[xinlin@promote test]$ cjpeg -quality 60 -optimize -progressive -outfile tt60.jpg tt.bmp
[xinlin@promote test]$ cjpeg -quality 50 -optimize -progressive -outfile tt50.jpg tt.bmp
[xinlin@promote test]$ cjpeg -quality 20 -optimize -progressive -outfile tt20.jpg tt.bmp
[xinlin@promote test]$ ll
total 708
-rw-rw-r--. 1 xinlin xinlin 12514 Jun 7 12:02 tt20.jpg
-rw-rw-r--. 1 xinlin xinlin 30325 Jun 7 12:02 tt50.jpg
-rw-rw-r--. 1 xinlin xinlin 32876 Jun 7 12:02 tt60.jpg
-rw-rw-r--. 1 xinlin xinlin 36029 Jun 7 12:02 tt75.jpg
-rw-rw-r--. 1 xinlin xinlin 561734 Jun 7 12:01 tt.bmp
-rw-rw-r--. 1 xinlin xinlin 33287 Jun 7 10:19 tt.jpg

以上代码,对tt.bmp进行了4次压缩,质量分别是75,60,50,20,可以看到生成的jpg图片越来越小,当然视觉质量也会越来越差,这种压缩是有损的。

以上使用cjpeg的代码,还带上了-optimize和-progressive这两个参数,优化土拍你的Huffman table,并且生成progressive格式的jpeg图片。但是cjpeg这个工具没有-copy none这个选项,某些图片的元数据,恐怕还是要使用jpegtran这个工具来优化。

75这个质量官方里面有个说法,他们认为基本上这个有损质量压缩之后,对视觉效果没有特别的损失。

用cjpeg这个工具以及本文所述方法,比使用网络上各种网页版的压缩工具,要简单很多。

本文链接:https://www.maixj.net/ict/cjpeg-jpg-21639

相关文章

留言区


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top