2015-02-09 68 views
-1

我想要在點上用鼠標單擊時獲取單個像素的顏色。在鼠標單擊圖形後獲取單個像素的顏色圖形

我使用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://stackoverflow.com/help/mcve)(最小完整可驗證示例)或[SSCCE](http://www.sscce.org/)(Short,Self包含,正確示例)。 – 2015-02-10 00:40:43

回答

0

0,0,0是黑色的,如果我沒記錯的話,這正是鼠標所在,因爲鼠標爲黑色像素的顏色,所以我會測試惠特鼠標與您的測量干擾並嘗試mouseX-1,mouseY-1

相關問題