Imagemagick - 质量 85 不起作用

Imagemagick - 质量 85 不起作用

我运行mogrify将 JPEG 图像压缩到 85% 质量:

$ ls -lah Screenshot.jpg
-rw-rw-r--.  1 USER GROUP 440K May 24 12:10 Screenshot.jpg
$ mogrify -compress JPEG Screenshot.jpg -quality 85
$ ls -lah Screenshot.jpg
-rw-rw-r--.  1 USER GROUP 441K May 24 12:10 Screenshot.jpg

尺寸并没有缩小。然而,如果我在 Gimp 中打开图像并以 85% 的质量保存,尺寸确实会缩小:

ls -lah Screenshot.jpg
-rw-rw-r--.  1 USER GROUP 135K May 24 12:11 Screenshot.jpg

为什么 ImageMagick 不将 JPEG 图像压缩到 85%?我在 Fedora 上使用 ImageMagick-6.6.4.1-15.fc14.i686。

答案1

看起来修饰符参数(-quality NN)和文件名的相对顺序在这里确实很重要,几乎就像它以一种非常非常简单的方式做它所告诉的那样。

: cez@rhk; !ls
ls -lh Screenshot.jpg 
-rw-r--r--  1 cez  staff   1.3M  5 24 19:20 Screenshot.jpg
: cez@rhk; mogrify -verbose -monitor -compress JPEG Screenshot.jpg -quality 10
load image[Screenshot.jpg]: 1079 of 1080, 100% complete
Screenshot.jpg JPEG 1920x1080 1920x1080+0+0 8-bit DirectClass 1.335MB 0.120u 0:05.680
save image[Screenshot.jpg]: 1079 of 1080, 100% complete
Screenshot.jpg JPEG 1920x1080 1920x1080+0+0 8-bit DirectClass 1.327MB 0.240u 0:02.960
: cez@rhk; 

因此,第一次运行 mogrify 时,我们指定-quality参数文件名,因此它不知道质量说明符应该应用于该图像。

: cez@rhk;mogrify -verbose -monitor -compress JPEG -quality 85 Screenshot.jpg 
load image[Screenshot.jpg]: 1079 of 1080, 100% complete
Screenshot.jpg JPEG 1920x1080 1920x1080+0+0 8-bit DirectClass 1.341MB 0.100u 0:00.119
save image[Screenshot.jpg]: 1079 of 1080, 100% complete
Screenshot.jpg JPEG 1920x1080 1920x1080+0+0 8-bit DirectClass 459KB 0.190u 0:00.200
: cez@rhk; 

相反,如果我们指定质量设置 图像文件名,它将以更多压缩保存图像,从而减小文件大小。

答案2

不完全相同的问题,但我在这个问题上坚持了很长时间。事实证明,大小并没有缩小,因为所有文件大小都在元数据中,并且添加到-strip命令中会减少大小。

相关内容