我有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)

我尝试过用“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)}

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

最佳答案

在interjay链接之后,问题通过升级到PIL 1.1.7得到了解决。这包括an update允许Photoshop创建的CMYK jpeg正常工作。但不要责怪皮尔,因为:
“JPEG中的CMYK是一个大混乱,主要是因为Adobe多年前在Photoshop中出错了。”
顺便说一下,您可以通过以下操作找到您拥有的PIL的哪个版本:

>>> Image.VERSION
'1.1.7'

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

10-08 05:01