如何在 Imagemagick 中禁用颜色转换

Posted

技术标签:

【中文标题】如何在 Imagemagick 中禁用颜色转换【英文标题】:How to disable color conversion in Imagemagick 【发布时间】:2017-11-04 09:29:50 【问题描述】:

我正在使用 Imagemagick 将 PDF 转换为光栅图像!我正在运行的命令是convert.exe -verbose -density 600 +antialias "E:\sample pdf\sample50 B.pdf" -quality 100 "D:\sample50_2.png"

现在我遇到的问题是 PDF 上的颜色与生成的图像上的颜色不同。那么问题是什么?我认为问题可能是因为 -dUseCIEColor。这是唯一奇怪的事情。我用“-dNOPSICC”禁用了CIE的加载,但是没有用!!!大家觉得问题出在哪里!?你能帮助我吗?

【问题讨论】:

【参考方案1】:

几乎可以肯定,最好的办法是提供一个示例文件。我非常怀疑问题是颜色转换,除了 PDF 可能在 CMYK 空间中,我相信 PNG 不支持,所以你将 必须 将 CMYK 转换为 RGB .

在这种情况下,有 许多 选项可用于控制转换,前提是您使用的是最新版本的 Ghostscript(您没有说明版本),但 -dUseCIEColor 是 第一个 你应该删除的东西。这是 PostScript coloru 管理的古老版本,只有在您确切知道如何使用它的情况下才能正常工作。由于您没有提供显然不是这种情况的 CRD,因此请删除它,它只会造成伤害。

-dNOPSICC 仅适用于 PostScript,因为您的输入文件是 PDF,它不会有任何效果。您无法阻止从 PDF 文件加载 ICC 配置文件,它们总是被尊重。无论如何,这只会提高颜色质量:-)

我还建议您直接使用 Ghostscript 而不是通过转换,至少最初是这样,因为这消除了一层混淆,意味着我可以重现您的命令行,并确保没有在“后面”设置任何控件场景”。

【讨论】:

谢谢,-dUseCIEColor 是问题所在。使用 -doNotApply 解决了它。 :) 您的 PDF 可能是 CMYK,需要转换为 sRGB。因此,在阅读 PDF 之前添加 -colorspace sRGB。 (在非常旧的 IM 版本上使用 -colorspace RGB)。请注意, +antialias 在那里不相关。如果你想要更高的细节,那么你应该使用更大的密度值,然后调整到你想要的像素尺寸。此外 - 质量值对于 PNG 和 JPG 意味着完全不同的东西。见imagemagick.org/script/command-line-options.php#quality。如果在 PDF 之前使用 -colorspace sRGB 没有帮助。然后,您可以使用配置文件进行更准确的颜色转换。 是的,我的 PDF 是 CYMK!实际上 +antialias 确实对我的去除平滑有很大帮助,我真的需要清晰的图片。如果我增加我的密度,文件大小就会变成 humonous 。你能告诉我在哪里放置色彩空间选项,以便生成与 PDF 相同的图像吗?非常感谢您的支持! :)

以上是关于如何在 Imagemagick 中禁用颜色转换的主要内容,如果未能解决你的问题,请参考以下文章

转换为png时如何更改图像中的单一颜色?

使用 imagemagick 处理图像并嵌入网络时,我应该留下还是去除嵌入的颜色配置文件?

ImageMagick如何输出十六进制颜色而不是SRGB?

如何在 Imagick 中设置修剪颜色?

PHP 或 Imagemagick :图像中主要颜色的数量

imagemagick 将 RGB PNG 转换为 CMYK PDF