我有一堆从 Google map 下载的 png 格式的 map 文件,我想将它们转换成一个更大的图像。当我导入一个并查看像素时,我看到像素是 0..256 范围内的单个数字,而不是三个值列表。这是怎么回事?
我正在使用
from PIL import Image
print open('b1.png').load()[0,0]
我得到 153 而不是 [r,g,b]
我的图像文件是
请您参考如下方法:
这样的结果([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 .
