加速java中的像素识别

时间:2012-03-31 10:12:53

标签: java awtrobot

我正在编写一个程序,要求我从屏幕上抓取数据,我这样做是通过遍历屏幕中的每个像素并保存颜色,但这是一个非常昂贵的操作并且需要时间

以下代码是我用来刮取数据的代码

try
{
     Robot r = new Robot();
     for( int a = 0; a < height; a++ )
     {
          for ( int b = 0; b < width; b++ )
          {
               Color p = r.getPixelColor(a, b);
               int red = p.getRed();
               int blue = p.getBlue();
               int green = p.getGreen();

               screen[a][b][0] = red;
               screen[a][b][1] = blue;
               screen[a][b][2] = green;
           }
      }
}
catch( AWTException e ) {}

有什么办法可以改善这一点,或者有没有其他方法可以使用这个类或方法

1 个答案:

答案 0 :(得分:1)

使用Robot.createScreenCapture()在单个方法调用中创建特定区域的BufferedImage

如果由于安全原因不起作用,您的第二个选择是修改源以使其在BufferedImage中呈现UI,然后您可以克隆它以进行分析(或者如果可以的话直接分析它防止改变它。)