2011-04-28 161 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()的两倍。 [分钟长度]