2011-04-28 193 views
4

我在查找光標下的當前顏色時遇到問題。Java獲取像素的顏色LIVE

我的代碼:

import java.awt.Color; 
import java.awt.MouseInfo; 
import java.awt.Point; 
import java.awt.PointerInfo; 
import java.awt.Robot; 

public class Test { 
    public static void main(String[] args) throws Exception { 
     PointerInfo pointer; 
     pointer = MouseInfo.getPointerInfo(); 
     Point coord = pointer.getLocation(); 

     Robot robot = new Robot(); 
     robot.delay(2000); 

     while(true) { 
      coord = MouseInfo.getPointerInfo().getLocation();  
      Color color = robot.getPixelColor((int)coord.getX(), (int)coord.getX()); 
      if(color.getGreen() == 255 && color.getBlue() == 255 && color.getRed() == 255) { 
       System.out.println("WHITE FOUND"); 
      } 
      robot.delay(1000); 
     } 
    } 
} 

當我運行它,甚至當我認爲我的鼠標上的灰色地帶,我得到「WHITE FOUND WHITE FOUND」的消息。

可能是什麼問題?你們能否測試它是否對你不起作用?

已添加圖片:我將光標放在Eclipse灰色區域,但得到「白色找到」消息。

enter image description here

回答

6

我認爲這個問題是您正在使用的getX而不是兩次的getX和

的getY
Color color = robot.getPixelColor((int)coord.getX(), (int)coord.getX()) 

應該

Color color = robot.getPixelColor((int)coord.getX(), (int)coord.getY()) 
2

您使用的getX()的兩倍。 [分鐘長度]