【问题标题】:ImageMagick JPEG quality/sizeImageMagick JPEG 质量/大小
【发布时间】:2014-02-04 01:45:30
【问题描述】:

我正在使用以下命令来生成缩略图:

mogrify -resize 128x128 -quality 75 "some thumb file"

对于示例文件:

  • 如果我不指定质量 75,我会得到一个 40Kb 的文件
  • 如果我指定质量 75,我会得到一个 36 kb 的文件,它看起来很糟糕
  • 在 Photoshop 中调整大小的相同文件为 - 看起来很棒!

是否可以使用 imagemagick 将缩略图调整为如此小的文件大小,以使生成的图像不会很糟糕? 也许我在这里错过了一些其他设置?

【问题讨论】:

  • 我无法重现此问题。您介意分享具体图片和mogrify -version 输出吗?
  • ImageMagick 6.7.6-7 2012-05-15 Q16
  • @JacobBudin 没关系,Jacob,我已将命令更改为:“mogrify -strip -interlace Plane -resize 128x128 -quality 90”,文件现在小于 10 Kb
  • 我认为 -interlace Plane 在 JPEG 中没有任何作用。

标签: imagemagick mogrify


【解决方案1】:

如果没有-quality,你得到的可能是质量 92,或者输入图像的质量(如果很大,尽管质量设置低,但看起来还不错)。

https://imagemagick.org/script/command-line-options.php#quality

JPEG 质量主要取决于两件事:

  • 使用的量化矩阵(或单独的 QM:一个用于 Y,另一个用于 Cb 和 Cr)
  • 是否有色度二次采样,例如图像使用一个 8x8 块(编码单元)来存储 16x16(在 4:2:0 情况下)像素块的颜色信息

您的首选质量 90 是没有二次抽样的最低质量。可能对于缩略图等小图像,高分辨率颜色信息很重要。

最后一点 - Photoshop 有自己的量化矩阵选择,用于“质量”设置。这些通常不同于mogrify 和libjpeg。 您应该在 mogrify 中找到正确的质量级别,而不是依赖 Photoshop 中的数字。

如果你想模拟PS压缩,你可以得到他们的QM-s:

$ djpeg -v -v saved_by_photoshop.jpg >/dev/null

然后使用这些矩阵压缩一些图像。 cjpeg 可以使用 -qtables file_with_QMs.txt 来实现。

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2011-11-12
    • 2013-03-24
    • 2020-06-10
    • 1970-01-01
    相关资源
    最近更新 更多