使用imageMagick缩小图像文件大小

时间:2017-05-15 09:16:19

标签: image image-processing imagemagick imagemagick-convert

我试图找出一个imagemagick操作,通过降低图像质量来减少图像文件大小。

此操作有效

convert -fuzz 1% -trim -quality 90 -limit memory 32MiB  original.jpg  converted.jpg

降低品质因数会降低imageSize。有没有其他方法可以实现相同的效果并增加MAX_SIZE的限制。

例如,5Mb图像应缩小为2Mb

2 个答案:

答案 0 :(得分:2)

您将使用-define jpeg:extent=...

以下是一个包​​含大量随机数据图像的示例,这些图像需要非常大的文件大小才能以合理的质量准确地表示它。

convert -size 10000x1000 xc:gray +noise random -define jpeg:extent=2MB out.jpg

<强>结果

-rw-r--r--    1 mark  staff  1844050 15 May 10:44 out.jpg

并检查使用的质量:

identify -format "%Q" out.jpg 
21

另一个例子:

convert -size 10000x1000 xc:gray +noise random -define jpeg:extent=400kb out.jpg

<强>结果

-rw-r--r--    1 mark  staff   377757 15 May 10:44 out.jpg

并检查使用的质量:

identify -format "%Q" out.jpg 
5

如果你想要一种与Python类似的方法,我写了一个非常好的答案here。它对满足最大尺寸要求的JPEG质量进行二进制搜索。

答案 1 :(得分:0)

除了质量,一个重要的因素是色度子采样。默认情况下,IM使用&#34;减半的色度&#34;,但您可以使用&#34;四分之一的色度&#34;。有关详细信息,请参阅this question

查看即时消息转换中的jpeg:extent option

您也可以使用Google's Guetzli。据我了解,它尝试各种JPEG编码选项来减少文件大小,同时检查结果的视觉可接受性。