我正在尝试从只包含矢量(不包含光栅)的EPS文件中更改颜色。目前,我将它们转换为SVG,操作颜色,然后使用Inkscape将它们转换回PDF或EPS。这是完美的工作,但不允许我应用CMYK着色,只允许RGB。在进行了一些研究并找到了像this或this这样的答案之后,我尝试覆盖我的EPS文件使用的/setcmykcolor函数。你可以从here下载。
EPS如下所示:

我想将颜色转换为CMYK =0 1 1 0,这样看起来就像这样:

在这种情况下,EPS文件是黑色的,但它可以是任何其他颜色。我尝试在%%BeginProlog之后添加这个,它应该覆盖/setcmykcolor,以始终应用0 1 1 0作为CMYK颜色:
/osetcmykcolor {/setcmykcolor} bind def /setcmykcolor {pop [0 1 1 0] osetcmykcolor} def或者这样:
/osetcmykcolor {/setcmykcolor} bind def /setcmykcolor {0 1 1 0 osetcmykcolor} def但一切都是黑色的。我知道/setcmykcolor是正确的函数,因为在绘制路径之前使用0 1 1 0 setcmykcolor会使其变为红色。我浏览了postscript编程手册,但我很难弄清楚这里到底出了什么问题!
任何帮助都将不胜感激!
发布于 2020-06-17 15:29:58
如果我启动Ghostscript,则执行以下操作:
GS> /osetcmykcolor /setcmykcolor load def
GS> /setcmykcolor {pop pop pop pop 0 1 1 0 osetcmykcolor} bind def
GS> (color.eps) run如您所料,EPS将呈现为“橙色”。
注意setcmykcolor接受4个参数,所以你必须弹出所有4个参数(虽然这不会导致缺少颜色,它只是在堆栈上留下了垃圾)。
编辑EPS文件:
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 564 454
%%HiResBoundingBox: 0.00 0.00 564.00 453.20
%%Creator: GPL Ghostscript 921 (eps2write)
%%LanguageLevel: 2
%%CreationDate: D:20200616000003-03'00'
%%Pages: 1
%%EndComments
%%BeginProlog
/osetcmykcolor /setcmykcolor load def
/setcmykcolor {pop pop pop pop 0 1 1 0 osetcmykcolor} bind def
/DSC_OPDFREAD true def然后用以下命令运行它:
gs color1.eps还会生成橙色文本。那么你是如何测试它的呢?
https://stackoverflow.com/questions/62419312
复制相似问题