imagemagick将CMYK pdf转换为RGB jpeg或PNG并预先设定颜色

Yea*_*eak 11 rgb image-manipulation imagemagick cmyk imagemagick-convert

我有一个cmyk pdf,我试图转换为RGB jpeg或png文件,但颜色保持非常接近CMYK版本(与Photoshop如何做)

我正在尝试以下命令,但颜色从红色变为几乎明亮的霓虹红色等等.

这是命令

 convert cmykpdf.pdf +profile icc -profile AdobeRGB1998.icc -colorspace sRGB jpegtesting.jpg
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?或想法如何做到这一点.我尝试将其保存为PNG也出现了同样的问题,并尝试将sRGB更改为RGB

注意:它不一定需要RGB jpeg它甚至可以是CMYK jpeg但我只需要它在浏览器中正确显示我知道safari不能正确显示cmyk jpegs

我的目标是在浏览器中显示一个img,显示正确的颜色和正确的分辨率,没有任何像素化

use*_*289 16

解决方案相当简单,现在没有任何关于Photoshop的CMYK到RGB的巫术或特殊内容.Imagemagick使用LCMS颜色引擎,它可以很好地完成它的工作.

但首先你需要编辑delegates.xmlIM目录中的文件.找到行delegate decode="ps:cmyk"-dUseCIEColor=false在末尾附近插入,所以它看起来像这样:

<delegate decode="ps:cmyk" restrain="True" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPSCrop -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pamcmyk32&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; -dUseCIEColor=false &quot;-f%s&quot; &quot;-f%s&quot;"/>
Run Code Online (Sandbox Code Playgroud)

这是必要的,因为否则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
Run Code Online (Sandbox Code Playgroud)

在这里我们采用cmyk.pdf(相反,GS返回IM的临时pam图像),分配CMYK配置文件(就像在Photoshop中一样,打开文件或明确地执行 - 因此选择描述最佳输入CMYK的配置文件) ,将其转换为sRGB配置文件(因为我不认为你想要AdobeRGB作为互联网图像的色彩空间)并保存到jpeg.根据需要降低质量参数.

另外一个技巧是额外的手动抗锯齿 - 注意144 dpi和最终72 dpi的中间分辨率.因为我不认为Ghostscript的抗锯齿-dGraphicsAlphaBits=4与Photoshop的抗锯齿相当.

此命令的结果与在Photoshop中转换的结果完全相同.


Bas*_* Ho 6

根据之前的答案,我最终成功地使用以下命令将自然颜色从 CMYK pdf 保留为 RGB png:

convert -colorspace sRGB cmyk.pdf rbg.png


Mac*_*ito 4

你可以试试这个:

convert -negate -colorspace RGB srcfile.jpg outputfile.jpg
Run Code Online (Sandbox Code Playgroud)

让我知道它是否有效!

  • 有用。但转换后的文件看起来比原始文件更暗。你能给我建议一个解决方案吗? (3认同)