【问题标题】:Graphicsmagick gives higher filesize when compressing jpgGraphicsmagick 在压缩 jpg 时提供更高的文件大小
【发布时间】:2024-04-28 21:00:02
【问题描述】:

首先我将lena512color.tiff amd 转换为 jpg,然后我以 90% 的质量对其运行 mogrify。令人惊讶的是,在我降低质量文件大小后更高。我在这里做错了什么?

gm convert lena512color.tiff lena512color.jpg # filesize = 37,043
gm mogrify  -quality 90 lena512color.jpg # filesize = 58,132

【问题讨论】:

  • 默认情况下,输出质量设置为 Graphicsmagick 认为输入文件的质量。所以我猜它认为 TIFF 的质量低于 90,而你实际上是在增加设置。
  • 顺便说一句,你可以做到gm convert in.tif -quality 90 out.jpg
  • @MarkSetchell 我该如何解决它,因为我不想提高质量设置
  • 省略-quality 90,我猜你会得到37kB。抱歉,我看不到您要达到的目标 - 如果将质量设置得更高会为您提供您不想要的更大文件,请不要将质量设置得更高。我一定是错过了什么......
  • 我对所有 jpg 图像使用相同的命令-quality 90,但正如您提到的,如果图像质量很差,尺寸实际上会增加。我想将高质量的 jpg 降级到质量 90 和那些图像较低的,忽略质量选项

标签: shell imagemagick-convert graphicsmagick mogrify


【解决方案1】:

默认情况下,输出质量设置为 GraphicsMagick 认为输入文件的质量。所以我猜它认为 TIFF 的质量低于 90,而你实际上是在增加设置。

您可以使用以下命令查看 GraphicsMagick 对图像质量的感知:

identify -format %Q someImage.jpg
90

如果您的目标是限制生成的 JPEG 的大小,您可以使用以下-define 来设置目标大小:

convert in.jpg -define jpeg:extent=50KB out.jpg

结果

-rw-r--r--    1 mark  staff  49802 30 Oct 12:38 out.jpg

或者

convert a.jpg -define jpeg:extent=30KB out.jpg

结果

-rw-r--r--    1 mark  staff  28996 30 Oct 12:38 out.jpg

【讨论】: