映射图像并获取像素颜色

Map image and get pixel color

我有两张图片,尺寸相同,图片相同,形状相同。 在第一张图片(我在屏幕上显示)中,形状是单色的,在第二张图片中,形状用不同的颜色映射。

当我在图像上移动鼠标时,我想根据第二个(隐藏)图像上映射的颜色显示不同的文本。

我不想绘制方形区域,而是不规则区域,这是我的问题。

例如,当鼠标光标在头上(右图)时,我在左图(缓存但未可视化)上显示为红色,并放置了特定文本。

如何加载第二张图片并获取像素颜色? Gosu不允许获取图像信息(仅宽度和高度)。

有什么想法吗?

最后我选择了这个 GEM chunky_png,因为它不依赖于其他 gem 或库,而且它非常适合我的需要:

@map_image = ChunkyPNG::Image.from_file('map_shape.png')                  

# Test pixel color
if @map_image[mouse_x - @main_image_x, mouse_y - @main_image_y] == ChunkyPNG::Color.rgb(255, 0,0)
 # Do something
end