在鼠标单击图形后获取单个像素的颜色图形

问题描述:

我想要在点上用鼠标单击时获取单个像素的颜色。在鼠标单击图形后获取单个像素的颜色图形

我使用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); 
    } 
+1

这里的getRGB是什么? – 2015-02-09 09:44:24

+1

为了更好地为您提供帮助,请发布[MCVE](http://*.com/help/mcve)(最小完整可验证示例)或[SSCCE](http://www.sscce.org/)(Short,Self包含,正确示例)。 – 2015-02-10 00:40:43

0,0,0是黑色的,如果我没记错的话,这正是鼠标所在,因为鼠标为黑色像素的颜色,所以我会测试惠特鼠标与您的测量干扰并尝试mouseX-1,mouseY-1