如何比较两种像素颜色

时间:2012-08-10 21:26:35

标签: java compare

我正在编写一个打开程序的程序,并等待它加载。加载时,中间有一个加载条,屏幕的其余部分为黑色。

我想要它做的是检查颜色,比如1200和300,将它保存为变量,然后检查两者是否每1秒都是相同的颜色,当它们不相同时,继续其余的代码。

我将如何做到这一点?

编辑:可以提供一些有效的代码吗?

BGC = robot.getPixelColor(1200, 300);
 System.out.println(robot.getPixelColor(1200, 300));

        int counter = 1;
    while (counter < 10){
        System.out.println(robot.getPixelColor(1200, 300));
        if (BGC == robot.getPixelColor(1200, 300)){
            Thread.sleep(2000);
            System.out.println("Colors Match");
        } else{
            System.out.println("Colors Dont Match");
        }
        counter++;
    }

此代码生成此结果的颜色不匹配的结果,以及明显匹配的颜色...帮助._。

2 个答案:

答案 0 :(得分:0)

http://www.javalobby.org/forums/thread.jspa?threadID=16400&tstart=0

http://www.daniweb.com/software-development/java/code/216988/java-code-to-capture-your-screen-as-image

以下两个链接描述了如何使用Java进行屏幕捕获并将其另存为BufferedImage。

http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/image/BufferedImage.html

这是BufferedImage类的文档

所以你想要的是:

  1. 运行程序
  2. 截屏
  3. 使用文档
  4. 中描述的某种方法检查RGB值
  5. 与旧值相比,是否相同?如果是,请返回2,否则转到5
  6. 其他计划
  7. 但是我不确定这是否是你想要做的。您试图解决的问题究竟是什么?

答案 1 :(得分:0)

为什么不使用机器人类(getPixelColor(x,y))来检查像素颜色?但如前所述,不确定这是怎么回事。