PIL 1.1.6保存Photoshop CMYK图像颜色错误

时间:2010-04-19 12:11:16

标签: python image python-imaging-library

我有an image。我想用PIL调整它的大小,但它出来了 like this

即使没有调整大小,它仍然是messes up the colour

最小代码:

from PIL import Image
import os
import urllib
import webbrowser

orig_url = 'http://mercedesclub.org.uk/images/stackoverflow-question/least-popular-colours-_-500-x-500.jpg'
temp_fn, _ = urllib.urlretrieve(orig_url)

im = Image.open(temp_fn)

fn = os.tempnam() + '.jpg'
im.save(fn)
webbrowser.open(fn)

我已尝试将Image.open(temp_fn).convert(format)与'RGB','CMYK'和'L'作为格式,但仍会获得奇怪的颜色或灰色效果。

当我从硬盘加载图像时,我可以看到:

>>>im.info  
{'adobe': 100, 
'progression': 1, 
'exif': 'Exif\x00\x00MM\x00*...\x7f\xff\xd9', 
'adobe_transform': 100}

>>>im.format  
'JPEG'  

>>>im.mode  
'CMYK'  

>>> im._getexif()
{40961: 65535, 40962: 500, 40963: 500, 296: 2, 34665: 164, 274: 1, 305: 'Adobe Photoshop CS Macintosh', 306: '2010:02:26 12:46:54', 282: (300, 1), 283: (300, 1)}

谢谢,如果您需要更多数据,请告诉我。

4 个答案:

答案 0 :(得分:4)

在interjay的链接之后,通过升级到PIL 1.1.7来解决问题。这包括an update以允许Photoshop创建的CMYK jpeg正常工作。但不要责怪PIL,Fredrik Lundh puts it

“JPEG中的CMYK是一个大混乱,主要是因为多年前Adobe在Photoshop中弄错了。”

顺便说一句,您可以通过以下方式找到您所拥有的PIL版本:

>>> Image.VERSION  
'1.1.7'  

更新:要在IE中显示生成的图像,您需要添加.convert('RGB'),以便输出标准的jpeg RGB格式,而不是CMYK。

答案 1 :(得分:2)

PIL似乎在加载一些CMYK格式的JPEG文件时出现问题。如果您可以将图像转换为更常用的颜色格式(使用其他工具),它将有所帮助。

发布了here的PIL补丁,但我还没试过。

答案 2 :(得分:1)

当原始图像以CMYK模式保存时,我遇到了类似的问题。在使用PIL进行处理之前,我不得不用RGB重新保存图像。

答案 3 :(得分:0)

如果您有Photoshop,则强烈建议您编辑颜色设置。如果图像颜色配置文件不匹配或丢失,可以切换它们以发出警告。

请点击此处了解如何进行设置:http://www.flickr.com/photos/kaichanvong/5979227438/in/photostream

今天有一个有趣的,因为图像没有附加颜色配置文件,并且认为它是在CMYK中 - 照片会变成反色。

最初没有在Lion上注意到这一点 - 但在iPad /其他机器上显而易见。很奇怪。

如果启用了不匹配/缺少配置文件选项,则可以告诉Photoshop添加默认版本。我意识到批处理这不是最终解决方案......但它应该有助于你更好地理解问题。

在这种情况下转换为RGB不是一种选择,因为颜色不能正确复制 - 例如。放射性绿巨人像绿色