Net*_*Man 0 python rgb python-imaging-library
我正在尝试编写一个相当简单的代码,它将能够读取图像的大小并返回所有 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])
Run Code Online (Sandbox Code Playgroud)
现在这段代码实际上是从这个网站上获取的,作为读取 gif 文件的一种方式。我试图让代码打印出一个 RGB 元组(在这种情况下是 (55, 55, 55)),但它给我的只是一小串不相关的数字,通常包含 34。
我已经尝试了许多其他代码示例,无论是否来自此处,但似乎不起作用。.png 格式有问题吗?我需要在 rgb 部分进一步编码吗?我很高兴得到任何帮助。
我的猜测是您的图像文件使用的是预乘 alpha 值。8您看到的值非常接近55*34/255(34alpha 通道值在哪里)。
PIL 使用模式"RGBa"(带有一点a)来指示它何时使用预乘 alpha。您也许可以告诉 PIL 将 转换为 normal "RGBA",其中像素将大致具有您期望的值:
img = Image.open('C:/image.png').convert("RGBA")
Run Code Online (Sandbox Code Playgroud)
请注意,如果您的图像根本不应该是部分透明的,那么您可能会遇到更大的问题。在不了解您的形象的情况下,我们无法为您提供帮助。