加快通过矩阵看

时间:2014-01-10 19:08:38

标签: java performance matrix rgb awtrobot

我有代码

public static void program() throws Exception{
    BufferedImage input = null;

    long start = System.currentTimeMillis();
    while((System.currentTimeMillis() - start)/1000 < 220){
        for (int i = 1; i < 13; i++){
            for (int j = 1; j < 7; j++){
                input = robot.createScreenCapture(new Rectangle(3+i*40, 127+j*40, 40, 40));
                if ((input.getRGB(6, 3) > -7000000) && (input.getRGB(6, 3)<-5000000)){
                    robot.mouseMove(10+i*40, 137+j*40);
                    robot.mousePress(InputEvent.BUTTON1_MASK);
                    robot.mouseRelease(InputEvent.BUTTON1_MASK);
                } 
            }
        }
    }
}

在网页上有一个矩阵(12 * 6),会随机产生一些图像。有些是坏的,有些是好的。

我正在寻找一种更好的方法来检查好图像。目前,在位置(6,3)上的良好图像上,RGB颜色与不良图像不同。 我正在从每个盒子(40 * 40)制作屏幕截图并查看位置(6,3)中的像素

不知道如何更好地解释我的代码

编辑: 网页图片。外部链接好吗? http://i.imgur.com/B5Ev1Y0.png

1 个答案:

答案 0 :(得分:1)

我不确定你的代码究竟是什么瓶颈,但我预感到它可能是对robot.createScreenCapture的重复调用。

您可以尝试在嵌套循环外的整个矩阵(即覆盖您感兴趣的所有较小矩形的大矩形)上调用robot.createScreenCapture,然后在您感兴趣的点处查找像素值您正在检查的子矩形的x和y坐标的偏移量。