【问题标题】:How to remove spot color (s) from an image如何从图像中去除专色
【发布时间】:2020-01-05 15:24:59
【问题描述】:

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

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

【问题讨论】:

    标签: imagemagick ghostscript imagemagick-convert


    【解决方案1】:

    'Image' 在 PostScript 中有一个定义的含义,它表示位图、光栅。我认为,从上下文来看,你的意思是更笼统的。

    简单的答案是否定的,一般来说你不能这样做,而且我不知道有什么工具可以做到。

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

    也许你可以解释你想用这个来实现什么(即你为什么要这样做),并且可能会建议一种替代方法。

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

    无论您是走这条路,继续现有的,还是寻找替代方法,您都需要考虑几件事情;您打算如何处理带有原色名称的分离油墨?例如/分离/黑色。一些油墨是印刷色的 DeviceN 空间呢?例如双色调黑色和 Pantone 墨水。这些应该保留还是丢弃?

    您当前的方法将使用标记印版的对象部分,而不是标记专色的部分,这可能会产生一些非常奇怪的结果。

    [编辑]

    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 文件仍然感觉是一种相当冗长的方法。我不禁觉得从创建应用程序中保存两个版本会更容易。

    【讨论】:

    • 我的用例是我有一个资产(图像),它显示了一个学生的问题。这个问题的解决方案也存在于同一资产中。解决方案仅以单一专色绘制。所以我的目标是提取“仅问题”图像(删除图像的“解决方案”部分)。一种不同的方法是使用多个图层来表示问题和解决方案而不是专色,但我也找不到在矢量文件中导出单独图层的方法(stackoverflow.com/questions/57753942
    • 嗨,Ken,非常感谢您的解释。我设法使用ghostscript将我的eps或ai文件转换为pdf文件,我的“图层”显示为OCG。现在我正在尝试找出该怎么做:“告诉它不要尊重可选内容部分”。 pdfwrite设备的ghostscript中是否有一个选项?
    • 我没有可以测试的例子,所以这是凭记忆的;基本上你需要关闭你不想看到的可选内容,然后通过Ghostscript运行。它是决定是否处理 OCG 的 PDF 解释器,如果设置为 Off,则不会处理,因此不会发送到 pdfwrite。如果它不是 /Off 那么它更复杂,这里有一些信息git.ghostscript.com/…
    • 如果你可以提供一个示例,我可以使用它,但没有它我有点在黑暗中吹口哨。
    • 确实,我使用 IText 库在我的 pdf 中将我的 ocg 层设置为关闭,然后当我通过 pngalpha 或 jpeg DEVICE 运行 pdf 时,ghostscript 会删除该层。谢谢支持!
    猜你喜欢
    • 2021-10-01
    • 2013-09-07
    • 2020-04-11
    • 2021-12-24
    • 2013-04-28
    • 2018-10-21
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    相关资源
    最近更新 更多