使用pyglet读取像素RGB值的问题

0 投票
1 回答
692 浏览
提问于 2025-04-16 07:11

在一个编程项目中,我需要使用 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]))

撰写回答