我有下面的图像188_f.jpg

以及以下代码:
<?php
$ss = "convert 188_f.jpg -quality 95% -set colorspace RGB -colorspace CMYK 188_f_cmyk.jpg 2>&1";
echo ">" . $ss . "<br />";
echo system($ss);
?>当我运行这段代码时,我得到这个映像作为输出:

这确实是在CMYK,但当观察到100%时,在质量上有很大的损失。(不确定SE上传时是否进行了转换,所以我通过FTP上传了上面的图像,这样您就可以在需要时直接检查它们。)

我试着把质量争论移开,带着和不带百分号,我还翻阅了Imagick指南,但是我找不到任何解释为什么质量会下降。输出文件的像素数相同。
编辑:除了更改colorspace选项之外,不对脚本进行其他更改,结果如下:

编辑2:也尝试了多个不同的配置文件,使用如下:
convert 188_f.jpg -quality 95% -profile profiles\\UncoatedFOGRA29.icc -colorspace CMYK 188_f_cmyk.jpg 2>&他们中没有一个人摆脱了像素。
发布于 2016-09-15 14:14:44
通过将以下选项传递给convert或mogrify,我设法获得了与原始映像无法区分的输出
-filter Triangle -define filter:support=2 -unsharp 0.25x0.25+8+0.065 -dither None -posterize 136 -quality 82 -define jpeg:fancy-upsampling=off -interlace none -colorspace sRGB -strip
(参考文献:https://www.smashingmagazine.com/2015/06/efficient-image-resizing-with-imagemagick/)

(左:原件- 74.8kB,右:转换-63)
https://stackoverflow.com/questions/29948661
复制相似问题