我试图找出一个imagemagick操作,通过降低图像质量来减少图像文件大小。
此操作有效
convert -fuzz 1% -trim -quality 90 -limit memory 32MiB original.jpg converted.jpg
降低品质因数会降低imageSize。有没有其他方法可以实现相同的效果并增加MAX_SIZE的限制。
例如,5Mb图像应缩小为2Mb
答案 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编码选项来减少文件大小,同时检查结果的视觉可接受性。