从CMYK转换为RGB

2024-06-01 13:35:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我在转换单页pdf(CMYK)到jpg(RGB)时遇到问题。当我使用下面的代码时,jpg图像中的颜色很花哨。我试着翻阅魔杖文档,但没有找到任何可以简单复制原始图像的东西。官方的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示例及其转换输出的链接。在

Original PDF

Converted to JPG


Tags: 代码文档图像homepdf颜色单页rgb
2条回答

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

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

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

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

完整的来源在下面的链接。 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")

相关问题 更多 >