7

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

下面是相关的代码片段。

with Image(filename = HOME + outFileName + ".pdf", resolution = 90) as original:
    original.format = "jpeg"
    original.crop(width=500, height=500, gravity="center")
    original.save(filename = HOME + outFileName + ".jpg")

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

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

原始 PDF

转换为 JPG

4

2 回答 2

10

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

from PIL import Image
image = Image.open(path_to_image)
if image.mode == 'CMYK':
    image = image.convert('RGB')
于 2016-05-02T11:57:07.863 回答
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")
于 2017-09-06T07:01:48.613 回答