在鼠标单击图形后获取单个像素的颜色图形
问题描述:
我想要在点上用鼠标单击时获取单个像素的颜色。在鼠标单击图形后获取单个像素的颜色图形
我使用Graphics
,我成功地画了一个500×500红色的形状,但是,当我试图得到一个像素的颜色在mouseX
/mouseY
位置(上面的红色形状我画),它打印出(0,0,0)
,而不是红色RGB值。
public void getColor(int mouseX, int mouseY)
{
Color myColor = Color.RED;
globalGraphics.setColor(myColor);
globalGraphics.fillRect(0,0,500,500);
int color = getRGB(mouseX, mouseY);
int red = (color >> 16) & 0x000000FF;
int green = (color >>8) & 0x000000FF;
int blue = (color) & 0x000000FF;
System.out.println(red+" "+green+" "+blue);
}
public void mouseClicked(MouseEvent e)
{
int mouseY = e.getY();
int mouseX = e.getX();
getColor(mouseX,mouseY);
}
答
0,0,0是黑色的,如果我没记错的话,这正是鼠标所在,因为鼠标为黑色像素的颜色,所以我会测试惠特鼠标与您的测量干扰并尝试mouseX-1,mouseY-1
这里的getRGB是什么? – 2015-02-09 09:44:24
为了更好地为您提供帮助,请发布[MCVE](http://*.com/help/mcve)(最小完整可验证示例)或[SSCCE](http://www.sscce.org/)(Short,Self包含,正确示例)。 – 2015-02-10 00:40:43