2012-05-08 42 views
5

我使用下面的代码使用PIL调整图片大小改变颜色大幅

img = Image.open("in.png") 
resized = ImageOps.fit(img, (200, 200), method=Image.ANTIALIAS) 
resized.save("out.png") 

但输出图像的颜色看起来非常不同来调整图像大小。在这里,他们正在做比较,大的一个是原:

enter image description here enter image description here

什么是更奇怪的是,当我在Ubuntu图像查看器打开它们,它们看起来是一样的。但不在Windows或MacOS中。

+1

颜色在这里看起来和我一样。这是与Python 2.x?如果以其他图像格式(例如jpg)进行此操作,您是否遇到同样的问题 – Levon

+1

@Levon:右侧的图像较亮且较红。没有有效的色彩校正系统,你将无法辨别。 –

回答

3

较大的图像正在使用Adobe RGB颜色配置文件。它从较小的图像中被省略,这意味着色彩校正系统将使用一些默认(可能是sRGB),其可能具有较小的色域。这会导致颜色变暗。

解决方案1:使用sRGB而不是Adobe RGB创建原始图像。

解决方案2:将颜色配置文件从较大的图像复制到较小的图像。

大多数Linux系统不支持颜色校正,至少不在OS X或Windows的范围内。因此,它们在Ubuntu的图像查看器中看起来是一样的,这实际上是图像查看器程序的一个限制,它无法理解颜色配置文件。

+0

很酷,谢谢!关于如何将颜色配置文件从一个图像复制到另一个图像的任何想法? –

+0

我不知道。 –

+0

我将原始图像更改为sRGB并且工作正常! :D –