我正在编写一个程序,要求我从屏幕上抓取数据,我这样做是通过遍历屏幕中的每个像素并保存颜色,但这是一个非常昂贵的操作并且需要时间
以下代码是我用来刮取数据的代码
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 ) {}
有什么办法可以改善这一点,或者有没有其他方法可以使用这个类或方法
答案 0 :(得分:1)
使用Robot.createScreenCapture()
在单个方法调用中创建特定区域的BufferedImage
。
如果由于安全原因不起作用,您的第二个选择是修改源以使其在BufferedImage
中呈现UI,然后您可以克隆它以进行分析(或者如果可以的话直接分析它防止改变它。)