Imagemagick 如何从图像中删除专色

Imagemagick 如何从图像中删除专色,imagemagick,ghostscript,imagemagick-convert,Imagemagick,Ghostscript,Imagemagick Convert,是否有命令行工具从矢量输入图像(类型可以是ai、eps)中删除所有专色通道,并仅保留CMYK或RGB颜色通道 到目前为止,我能想到的是使用ghostscript tiffsep设备,然后使用imagemagicks-combine选项将彩色通道图像重新组合为一幅图像。这种方法的缺点是它相当复杂,我最终得到的是tiff图像,而不是原始(矢量)格式 “图像”在PostScript中有定义的含义,它表示位图、光栅。我认为,从上下文来看,你的意思更一般 简单的答案是不,一般来说你不能这样做,我也不知道有

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


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

“图像”在PostScript中有定义的含义,它表示位图、光栅。我认为,从上下文来看,你的意思更一般

简单的答案是不,一般来说你不能这样做,我也不知道有什么工具可以这样做

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

也许你可以解释一下你想用这个来达到什么目的(即你为什么要这样做),也许可以建议一种替代方法

如果您是一名称职的C程序员,您可以使用现有的过滤设备(在gdevflt.C中)作为模板来生成Ghostscript子类设备。该设备查看操作类型,并将其传递到输出设备,或将其丢弃。这将是合理的简单,看看目前的色彩空间,并放弃分离或设备空间。如果使用pdfwrite/ps2write/eps2write outptu设备,则会得到一个EPS、PostScript程序或PDF文件作为输出

无论你走这条路,继续你所拥有的,或找到一个替代方法,有几件事你需要考虑;您计划如何解决带有工艺颜色名称的分离油墨?例如:分离/黑色。有些油墨是加工颜色的DeviceN空间呢?双色黑色和潘通色墨水。这些应该保存还是重新整理

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

[编辑]

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

像Photoshop和Illustrator这样的应用程序可以有图层,但一般来说,它们导出到的内容必须将这些“图层”转换为其他内容。“其他东西”取决于您将其保存为什么

问题的一部分在于,你显然试图处理3种不同的输入,比如Illustrator(PDF,或多或少)、Photoshop(光栅图像)和EPS(PostScript)。三者之间几乎没有共同点,有理由支持所有这三者吗

如果你满足于只使用Illustrator,你也许可以用可选内容做一些事情。我对Illustrator的现代版本不是很熟悉,但是保存两个版本的文件不是更简单吗,一个有答案层,一个没有答案层

无论如何,Ghostscript可以支持可选内容,因此,如果您可以从Illustrator保存PDF文件(而不是PostScript或EPS),则这些层可能会作为可选内容保留在PDF中。我怀疑他们会通过谷歌快速搜索。在这种情况下,您可以通过Ghostscript运行该文件,告诉它不要遵守可选内容部分,并在没有它的情况下获取PDF文件

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


但是,要想获得一个PDF文件并删除其中的一些内容,这仍然是一个相当冗长的过程。我忍不住觉得,从创建应用程序中保存两个版本会更容易。

我的用例是,我有一个资产(图像),它向学生显示一个问题。该问题的解决方案也存在于同一资产中。该解决方案仅以单一专色绘制。因此,我的目标是提取“仅问题”图像(删除图像中的“解决方案”部分)。另一种不同的方法是使用多个图层作为问题和解决方案,而不是专色,但我也找不到在矢量文件中导出单独图层的方法()嗨,肯,非常感谢你的解释。我已经设法使用ghostscript将我的eps或ai文件转换为pdf文件,我的“层”显示为OCG。现在我想知道怎么做:“告诉它不要尊重可选内容部分”。在pdfwrite设备的ghostscript中是否有一个选项?我手头没有一个示例可供测试,因此这是从内存中获取的;基本上,您需要关闭不想看到的可选内容,然后通过Ghostscript运行它。PDF解释器决定OCG是否被处理,如果它被设置为Off,它将不会被处理,因此不会被发送到pdfwrite。如果它不关闭,那么它就更复杂了,这里有一些信息,如果你能提供一个例子,我可以用它玩,但没有它,我有点像在黑暗中吹口哨。事实上,我使用IText库在我的pdf中将我的ocg层设置为关闭,然后当我通过pngalpha或jpeg设备运行pdf时,ghostscript会删除该层。谢谢你的支持!