jpegtran 是否应该删除比 mogrify strip 更多的字节?

jpegtran 是否应该删除比 mogrify strip 更多的字节?

我目前正在使用mogrify -strip image.jpg从图像中删除不需要的字节,有人建议我可以使用jpegranfrom删除更多数据libjpeg,例如:

jpegtran -copy none -optimize -outfile image.jpg image.jpg

我遇到的问题(如果它是个问题的话)是,它jpegtran似乎并没有真正做 mogrify 尚未做的事情。在我所有的测试中,文件大小都保持不变。如果我删除代码中的 mogrify 部分并替换为,jpegtran那么它似乎可以执行相同的功能。

例如:

  • 未压缩的图像:300k
  • mogrify -strip带+ 的图片jpegtran:272k
  • 图像mogrify -strip仅:272k
  • 图像jpegtran仅:272k

不过,我的印象是,它mogrify只是删除了图片配置文件/评论,并且jpegtran无损压缩了图片,使其变小。我是不是漏掉了什么?

答案1

维基百科说jpegtran“优化了霍夫曼编码层”,删除了额外的应用程序特定数据(什么mogrify -strip作用),并在渐进式和非渐进式 jpeg 格式之间进行转换。它还能够裁剪、旋转/翻转和转换为灰度,而无需解压缩和重新压缩图像。

我推测,如果霍夫曼编码层已经处于最佳状态,那么 jpegtran 就无法做得更好了。

相关内容