【发布时间】:2021-03-10 01:15:30
【问题描述】:
将 CMYK 图像转换为 RGB 时,我的颜色会反转。我想保持相同的(视觉上)颜色并删除 exif 数据。
我需要这样做才能在任何图像或 pdf 查看器上显示转换后的图像。
结果(代码如下)
原始 CMYK
图片太重无法上传 -> https://www.dropbox.com/s/q9z2jejhasjqdoy/original.jpeg?dl=0
转换后的 RGB
取消注释invert_pixels(image) 后转换为 RGB
使用TinyJPG 转换(此转换在 PDF 和其他图像查看器中正常工作。我想从根本上重新创建此图像配置文件)
堆栈
- Python 3.5.9
- PIL 5.1.0
测试代码:
image_filename = "original.jpeg"
image_file = open(image_filename, "rb")
image = Image.open(image_file)
orientate_image_using_exif(image)
image_data = list(image.getdata())
image_without_exif = image.convert("RGB")
image_without_exif.putdata(image_data)
# invert_pixels(image)
image_without_exif.save(
u"RGB_{}".format(image_filename),
progressive=True,
icc_profile=image.info.get('icc_profile'),
subsampling=0,
)
评论
- 我转换为 RGB 只是因为 TinyJPG 图像的元数据显示它是 RGB
- 考虑到像素反转让我更接近了多少,我的猜测是我需要为每个像素转换找到正确的公式来保持正确的颜色
-
orientate_image_using_exif对最终颜色没有影响
问题
- 谁能帮我让它正常工作?期望的结果就像 TinyJPG 图像。它确实进行无损压缩。我不想/不在乎。我只对删除 exif 数据(有效)和保持正确的颜色(无效)感兴趣
【问题讨论】:
-
为什么要将图像转换为 RGB? JPEG 可以直接保存 CMYK/YCCK 图像。
-
我正在尝试完全实现上一张图片中显示的内容。与上一张图像相同,将原始图像更改为 RGB 似乎可以使其在 PDF 查看器中工作。使用 PDF 查看器打开原始 CMYK 图像时会反转颜色
-
在将图像转换为 RGB 时,也许您还应该删除 icc_profile。
-
顺便说一句,您分享的图片不包含 Exif 数据(APP1 标记段)。
-
是的,似乎没有。这意味着问题在于颜色空间如何在不同的阅读器中表示。理想的解决方案是在视觉上保持与压缩的微小 jpg 图像相同的颜色
标签: python image image-processing python-imaging-library jpeg