应该使用哪些 Imagemagick 转换参数来创建 GPG public 密钥照片?

Which Imagemagick convert parameters should be used to create a GPG public key photo?

根据 GPG guidelines,照片 ID 应为 240x288 像素左右,大小为 4k-6k。我用过:convert -resize 240x240 -quality 75 original.jpg gpguid.jpg。但是,生成的文件仍然是 17k。具体来说,我很好奇在降低质量级别之前我有哪些选择。

这是我确定的命令:convert -resize 240x240 -quality 55 -strip -sampling-factor 4:2:0 original.jpg gpguid.jpg

原始命令产生了一个 17,169 字节的文件。 -strip 参数通过 removing profiles and comments. The -sampling-factor argument reduced the size to 8,315 bytes by cutting the chroma channel's resolution in half without affecting the luminance resolution 将大小降低到 10,226 字节。最后,将质量调低至 55 使我在推荐的 6K 范围内。

ImageMagick 具有允许您设置最大输出文件大小的功能,您可能会发现让它这样做比任意降低质量要好得多所有照片都在指定尺寸内 - 这样您应该希望尽可能保持质量:

convert input.jpg -strip -resize 240x240 -define jpeg:extent=6kb result.jpg

上述命令将生成一个不到 6kB 的文件。


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