映射图像并获取像素颜色
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
我有两张图片,尺寸相同,图片相同,形状相同。 在第一张图片(我在屏幕上显示)中,形状是单色的,在第二张图片中,形状用不同的颜色映射。
当我在图像上移动鼠标时,我想根据第二个(隐藏)图像上映射的颜色显示不同的文本。
我不想绘制方形区域,而是不规则区域,这是我的问题。
例如,当鼠标光标在头上(右图)时,我在左图(缓存但未可视化)上显示为红色,并放置了特定文本。
如何加载第二张图片并获取像素颜色? 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