解决方案相当简单,现在 Photoshop 的 CMYK 到 RGB 并没有什么巫术或特别之处。Imagemagick 使用 LCMS 颜色引擎,它的工作做得很好。
但首先您需要编辑delegates.xml
IM 目录中的文件。找到行delegate decode="ps:cmyk"
并在末尾附近插入-dUseCIEColor=false
,所以它看起来像这样:
<delegate decode="ps:cmyk" restrain="True" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPSCrop -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pamcmyk32" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" -dUseCIEColor=false "-f%s" "-f%s""/>
这是必要的,因为否则 Ghostscript(在将pam
图像返回到 ImageMagick 之前)将执行 CMYK 到 CMYK 的转换(假设 DeviceCMYK 是基于 CIE 的 CMYK),您可能不希望这样,因为颜色会发生很大变化。
然后试试这个命令:
convert -density 144 cmyk.pdf -profile USWebCoatedSWOP.icc -resample 72 -profile "sRGB Color Space Profile.icm" -quality 100 out.jpg
在这里,我们采用 cmyk.pdf(而是 GS 返回给 IM 的临时 pam 图像),分配 CMYK 配置文件(就像您在 Photoshop 中所做的那样,当您打开文件或明确执行时 - 因此选择描述您输入 CMYK 的最佳配置文件) ,将其转换为 sRGB 配置文件(因为我认为您不希望 AdobeRGB 作为 Internet 图像的色彩空间)并保存为 jpeg。根据需要降低质量参数。
这里还有一个技巧是额外的手动抗锯齿——注意 144 dpi 的中间分辨率和最终的 72 dpi。因为我不认为 Ghostscript 的抗锯齿-dGraphicsAlphaBits=4
与 Photoshop 的抗锯齿相提并论。
此命令的结果看起来与在 Photoshop 中转换的结果完全相同。