我想将图像格式转换为特定质量的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'
答案 0 :(得分:3)
尝试:
gm convert image1 -quality 60 JPEG:image2
但如果image1始终是jpeg,则可以跳过JPEG:
规范:
gm convert image1 -quality 60 image2
答案 1 :(得分:2)
如果您在输出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