2015-02-09 2 views
-1

Я пытаюсь получить цвет одного пикселя, когда нажимаю мышью на точку.Получите цвет одиночного пикселя после щелчка мышью по графике

Я использую Graphics и я успешно нарисовал 500x500 красную форму, но когда я пытаюсь получить цвет пикселя в положении 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' здесь? –

+1

Чтобы лучше помочь, опубликуйте [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http://www.sscce.org/) (Short, Self Содержащийся, правильный пример). –

ответ

0

0,0,0 черный, если я правильно помню, что именно цвет пикселя, что мышь находится на, потому что мышь черного цвета, так что я бы проверить Wheater мышь мешает вашему измерению и попробуйте mouseX-1, mouseY-1

Смежные вопросы