使用PIL调整图像大小会彻底改变颜色

时间:2012-05-08 03:38:45

标签: python image-processing python-imaging-library

我使用以下代码使用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 个答案:

答案 0 :(得分:5)

较大的图像使用的是Adobe RGB颜色配置文件。它从较小的图像中省略,这意味着颜色校正系统将使用一些默认值(可能是sRGB),这可能具有较小的色域。这会使颜色看起来更暗淡。

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

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

大多数Linux系统不支持色彩校正,至少不支持与OS X或Windows相同的范围。因此,它们在Ubuntu的图像查看器中显示相同的事实实际上是图像查看器程序的限制,它无法理解颜色配置文件。