如何从图像中去除专色

时间:2019-09-02 15:27:54

标签: imagemagick ghostscript imagemagick-convert

是否有一个命令行工具可以从矢量输入图像(类型可以是ai,eps)中删除所有专色通道,并仅保留CMYK或RGB颜色通道。

到目前为止,我能想到的是使用ghostscript tiffsep设备,然后使用imagemagicks -combine选项将彩色通道图像重新组合为一张图像。这种方法的缺点是它相当复杂,我最终得到的是tiff图像,而不是原始的(矢量)格式。

1 个答案:

答案 0 :(得分:2)

“图像”在PostScript中具有定义的含义,表示位图,栅格。从上下文来看,我认为您的意思更笼统。

简单的回答是“否”,通常您无法做到这一点,而且我不知道会使用哪种工具。

原因是这样做会丢失信息;在Sepalation或DeviceN空间中定义的标记将完全丢失,并且通常认为丢弃文档的随机部分是一个坏主意。

也许您可以解释您要通过此方法实现的目标(即您为什么要这样做),并且可能可以建议其他方法。

如果您是合格的C程序员,则可以使用现有的FILTER设备(在gdevflt.c中)作为模板来生产Ghostscript子类设备。该设备查看操作的类型,然后将其传递到输出设备,或将其丢弃。查看当前颜色空间并舍弃Separation或DeviceN空间将相当简单。然后,如果您使用pdfwrite / ps2write / eps2write输出设备,则将获得EPS,PostScript程序或PDF文件作为输出。

无论您是沿着这条路走,继续拥有自己的东西,还是找到替代的方法,都需要考虑以下两点:您打算如何处理带有印刷色名称的分色油墨?例如,/分离/黑色。在DeviceN空间中,某些墨水是印刷色怎么办?例如,双色调黑色和潘通油墨。这些应该保留还是丢弃?

您当前的方法将使用对象的标记过程板的部分,而不是标记斑点颜色的部分,这可能会产生一些非常特殊的结果。

[编辑]

PDF,PostScript和EPS没有“图层”(PDF具有“可选内容”功能,在规范中使用“图层”作为描述,仅此而已)。

诸如Photoshop和Illustrator之类的应用程序可以具有图层,但是通常,它们导出到的图层必须将这些“图层”转换为其他图层。 “其他”取决于您将其另存为什么。

部分问题是您显然试图处理3种不同类型的输入,例如Illustrator(PDF,或多或少),Photoshop(光栅图像)和EPS(PostScript)。这三者之间没有什么共同点,是否有理由支持它们?

如果您只愿意使用Illustrator,则可以使用Optional Content进行某些操作。我对Illustrator的现代版本不是很熟悉,但是保存文件的两个版本不是更简单,一个版本带有答案层,另一个版本没有?

无论如何,Ghostscript可以接受可选内容,因此,如果您可以保存Illustrator中的PDF文件( PostScript或EPS),则图层可能会作为可选内容保留在PDF中。我怀疑他们会很快通过Google。在这种情况下,您也许可以通过Ghostscript运行文件,告诉它不要遵循Optional Content部分,并获得一个不存在它的PDF文件。

另一种解决方案(同样仅限于PDF)是使用Acrobat Pro之类的编辑应用程序打开PDF文件,然后简单地删除不需要的位。这种删除相对可靠。

获得删除某些内容的PDF文件仍然感觉很漫长。我忍不住觉得从创建的应用程序中保存两个版本会更容易。