获取 window 中指定像素的颜色
Get colour of specified pixel in window
我正在尝试在 pyglet 上制作一个简单的程序,当用户单击图像时它 returns True
,否则它 returns False
.
我知道如何进行这项工作,但这是我的形象:
kitten
如您所见 - 此图像有白色背景,我的 pyglet window 也是如此,所以我现在要做的是仅 return True
当用户想要的像素时点击是 除 以外的任何内容。
我知道如何做到这一点,但我需要知道的是如何检查某个像素的颜色。
#This is getting and resizing the image
kitty = pyglet.resource.image('kitty.jpg')
kitty.width = kitty.width//4
kitty.height = kitty.height//4
#These are variables of the coordinates
#to draw the image at
kitty_draw_x = 0
kitty_draw_y = 0
#And this is the function to draw the kitty!
@window.event
def on_draw():
window.clear()
kitty.blit(kitty_draw_x, kitty_draw_y)
您可以使用以下方法访问图像的像素:
rawimage = kitty .get_image_data()
format = 'RGBA'
pitch = rawimage.width * len(format)
pixels = rawimage.get_data(format, pitch)
然后获取像素 x,y 使用:
pixels[kitty.width * y + x]
我正在尝试在 pyglet 上制作一个简单的程序,当用户单击图像时它 returns True
,否则它 returns False
.
我知道如何进行这项工作,但这是我的形象:
kitten
如您所见 - 此图像有白色背景,我的 pyglet window 也是如此,所以我现在要做的是仅 return True
当用户想要的像素时点击是 除 以外的任何内容。
我知道如何做到这一点,但我需要知道的是如何检查某个像素的颜色。
#This is getting and resizing the image
kitty = pyglet.resource.image('kitty.jpg')
kitty.width = kitty.width//4
kitty.height = kitty.height//4
#These are variables of the coordinates
#to draw the image at
kitty_draw_x = 0
kitty_draw_y = 0
#And this is the function to draw the kitty!
@window.event
def on_draw():
window.clear()
kitty.blit(kitty_draw_x, kitty_draw_y)
您可以使用以下方法访问图像的像素:
rawimage = kitty .get_image_data()
format = 'RGBA'
pitch = rawimage.width * len(format)
pixels = rawimage.get_data(format, pitch)
然后获取像素 x,y 使用:
pixels[kitty.width * y + x]