从CMYK转换为RGB

时间:2015-10-13 11:36:35

标签: python linux python-3.x imagemagick wand

我在将单页pdf(CMYK)转换为jpg(RGB)时遇到问题。当我使用下面的代码时,jpg图像中的颜色很鲜艳。我试过阅读魔杖文档,但没有找到任何简单复制原始图像的东西。官方的ImageMagick文档本身对我来说仍然是不透明的。对于我的情况,有必要在python脚本中执行此操作。

以下是相关的代码段。

 d1 <- do.call(rbind, l)
 split(d1, d1$name)

如何准确地从CMYK转换为RGB?

更新:以下是示例pdf及其转换输出的链接。

Original PDF

Converted to JPG

2 个答案:

答案 0 :(得分:5)

如果图像检测到图片处于RGB模式,此脚本会将图片转换为CMYK并将其保存在原位:

from PIL import Image
image = Image.open(path_to_image)
if image.mode == 'CMYK':
    image = image.convert('RGB')

答案 1 :(得分:0)

最后我解决了这个问题。 必须反转包含在PDF中的CMYK模式JPG图像。

但是在PIL中,不支持反转CMYK模式图像。 比我用numpy解决它。

完整来源位于以下链接中。 https://github.com/Gaia3D/pdfImageExtractor/blob/master/extrectImage.py

见第166~170行。

imgData = np.frombuffer(img.tobytes(), dtype='B')
invData = np.full(imgData.shape, 255, dtype='B')
invData -= imgData
img = Image.frombytes(img.mode, img.size, invData.tobytes())
img.save(outFileName + ".jpg")