使用pyglet读取像素RGB值的问题
在一个编程项目中,我需要使用 pyglet 从加载的图片中读取像素。
我用 "pyglet.image.load('map.png')" 来加载图片,然后发现可以通过 img.get_image_data() 来获取图片的数据。
我使用这行代码 mapImage.get_region(x,y,1,1).get_image_data().get_data("RGBA", 4)
来读取位于 (x,y) 这个位置的像素数据。
但是我在这里遇到了问题。当我打印上面那行代码的结果时,得到的是一个空白的空间。有人能帮我解释一下如何从 get_data() 函数返回的字符串中提取 RGB 值吗?
谢谢!
1 个回答
1
你的mapImage... 返回的是一个包含4个字符的字符串,这些字符代表的是rgba颜色值。
试试这个:
pix = mapImage.get_region(x,y,1,1).get_image_data().get_data("RGBA", 4)
print 'r = ' + str(ord(pix[0]))
print 'g = ' + str(ord(pix[1]))
print 'b = ' + str(ord(pix[2]))
print 'a = ' + str(ord(pix[3]))