将图像转换为特定的 JPG 质量

Converting images to a specific JPG quality

我想将图像格式转换为特定质量的 JPG

以下命令由于某种原因不起作用,我得到的只是 NULL

gm convert -quality 80 '/tmp/phpK31vNK' JPEG:'/tmp/phpK31vNK' && cat '/tmp/phpK31vNK'

然而,以下命令工作正常,但 graphicsmagick 设置默认质量为 75

gm convert '/tmp/phpK31vNK' JPEG:'/tmp/phpK31vNK' && cat '/tmp/phpK31vNK'

尝试:

gm convert image1 -quality 60 JPEG:image2

但是如果 image1 始终是 jpeg,您可以跳过 JPEG: 规范:

gm convert image1 -quality 60 image2

如果在 cat 编辑了输出文件的内容后不需要输出文件,则可以避免完全创建它以及 cat 不必要的额外过程。您只需告诉 GraphicsMagick 创建一个 JPEG 并将其直接发送到 stdout,如下所示:

gm convert input.jpg -quality 80 jpeg:-

我们可以通过改变质量和计算字节输出来看到它的工作原理,如下所示:

# Low quality => small size
gm convert test.jpg -quality 60 jpeg:- | wc -c
9036

# Higher quality => larger size
gm convert test.jpg -quality 80 jpeg:- | wc -c
11513