0

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

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

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

例如,当鼠标光标在头部(右图)上时,我在左图(缓存但未可视化)上得到红色,并放置了一个特定的文本。

示例图像

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

有任何想法吗?

4

1 回答 1

0

最后我选择了这个 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
于 2019-07-24T07:37:17.683 回答