python - PIL 将 png 像素导入为单个值而不是 3 个值向量

标签 python image png python-imaging-library

我有一堆从 Google map 下载的 png 格式的 map 文件,我想将它们转换成一个更大的图像。当我导入一个并查看像素时,我看到像素是 0..256 范围内的单个数字,而不是三个值列表。这是怎么回事?

我正在使用

from PIL import Image

print open('b1.png').load()[0,0]

我得到 153 而不是 [r,g,b]

我的图像文件是 enter image description here

最佳答案

这样的结果([0,0] 中的值 153)的原因是图像模式设置为 P(8 位像素,映射到任何其他使用调色板的模式)。如果您想设置不同的模式(例如 RGB),您可以在调用方法 load() 之前完成。

这是一个如何做到这一点的例子:

from PIL import Image
file_data = Image.open('b1.png')
file_data = file_data.convert('RGB') # conversion to RGB
data = file_data.load()
print data[0,0]

打印结果为

(240, 237, 229)

有关图像模式的更多信息,请访问 the documentation .

关于python - PIL 将 png 像素导入为单个值而不是 3 个值向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27093835/

相关文章:

python - 使用 Pydev 开发时抑制警告 Eclipse

python - 从 Django South 的重复迁移中恢复

java - 如何在 JSP 页面中从数据库中检索和显示图像?

php - 使用 FPDF (PHP) 插入带有 alpha channel 的 PNG

python - 使用 Python PIL 库将图像垂直淡化为透明

C# - 如何更改 PNG 质量或颜色深度

java - 为什么java无法在本地保存python程序rdf RDF本体文件?

python - pandas:如何将字典转换为转置数据框?

image - QLabel 在 QScrollArea 内显示图像

jquery - 为什么jquery中的图像预览无法显示任何图像?