Python PIL don返回的RGB值';不匹配RGB颜色

Python PIL don返回的RGB值';不匹配RGB颜色,python,python-imaging-library,rgb,Python,Python Imaging Library,Rgb,我试图制作一个相当简单的代码,能够读取图像的大小并返回所有RGB值。我在Python 2.7上使用PIL,我的代码如下: import os, sys from PIL import Image img = Image.open('C:/image.png') pixels = img.load() print(pixels[0, 1]) 现在这个代码实际上是从这个网站上下载下来的,作为读取gif文件的一种方式。我试图让代码打印出一个RGB元组(在本例中为(55,55,55)),但它给我的只

我试图制作一个相当简单的代码,能够读取图像的大小并返回所有RGB值。我在Python 2.7上使用PIL,我的代码如下:

import os, sys
from PIL import Image
img = Image.open('C:/image.png')
pixels = img.load()

print(pixels[0, 1])
现在这个代码实际上是从这个网站上下载下来的,作为读取gif文件的一种方式。我试图让代码打印出一个RGB元组(在本例中为(55,55,55)),但它给我的只是一个不相关数字的小序列,通常包含34


我尝试过许多其他的代码示例,不管是否从这里开始,但它似乎不起作用。.png格式有问题吗?我需要在rgb部分进一步编码吗?我很高兴能得到任何帮助。

我猜您的图像文件使用的是预先乘以的alpha值。您看到的
8
值非常接近
55*34/255
(其中
34
是alpha通道值)

PIL使用模式
“RGBa”
(带有一点
a
)来指示何时使用预乘alpha。您可以告诉PIL将图像转换为正常的
“RGBA”
,其中像素的值大致与您期望的值相同:

img = Image.open('C:/image.png').convert("RGBA")

请注意,如果您的图像根本不应该是部分透明的,那么您可能会遇到更大的问题。如果不了解更多有关图像的信息,我们将无法为您提供帮助。

我猜您的图像文件使用的是预先乘以的alpha值。您看到的
8
值非常接近
55*34/255
(其中
34
是alpha通道值)

PIL使用模式
“RGBa”
(带有一点
a
)来指示何时使用预乘alpha。您可以告诉PIL将图像转换为正常的
“RGBA”
,其中像素的值大致与您期望的值相同:

img = Image.open('C:/image.png').convert("RGBA")

请注意,如果您的图像根本不应该是部分透明的,那么您可能会遇到更大的问题。我们无法在不了解您的图像的情况下帮助您完成这项工作。

小序列是指4个数字吗?(表示RGBA)你能发布准确的输出吗?请将你的图片上传到某个地方(比如)和你的问题,并添加一个链接。在这种情况下,是的,它是4个数字。输出为(8,8,8,34)。在这个代码之前是(34,34,34)。它会有所不同。在不同的运行过程中,它会有所不同,而无需更改基础的
image.png
?另外,
print(img)
显示什么——类似于
。。。mode=RGBA…
?@Martineau很遗憾,我没有能力通过imgur发布图像,但我试图调用的像素的RGB值在文章中提到。小序列是指4个数字吗?(表示RGBA)你能发布准确的输出吗?请将你的图片上传到某个地方(比如)和你的问题,并添加一个链接。在这种情况下,是的,它是4个数字。输出为(8,8,8,34)。在这个代码之前是(34,34,34)。它会有所不同。在不同的运行过程中,它会有所不同,而无需更改基础的
image.png
?另外,
print(img)
显示什么——类似于
。。。mode=RGBA…
?@Martineau很遗憾,我没有能力通过imgur发布图像,但我试图调用的像素的RGB值在文章中提到。