按颜色查找像素序列

时间:2012-02-13 02:08:02

标签: java image input pixel rgb

我有这段代码:

{
Robot robot = new Robot();
Color inputColor = new Color();


Rectangle rectangle = new Rectangle(0, 0, 1365, 770);

    BufferedImage image = robot.createScreenCapture(rectangle);
    for(int x = 0; x < rectangle.getWidth(); x++) 
    {
        for (int y = 0; y < rectangle.getHeight(); y++) 
        {
            if (image.getRGB(x, y) == inputColor.getRGB()) 
            {
            return 1;
            break;
            }
        }
    }
}

它应该并且确实会截取屏幕截图并在其中找到inputColor指定的像素。但是程序要求已经改变,现在它需要找到一个长度与给定字符串匹配的像素串。是否有一种简单的方法可以使用现有代码指定它,还是需要更改它?我的意思是,我可以保留现有代码并将inputColor定义为具有5个像素值的字符串,还是需要更改整个算法?

1 个答案:

答案 0 :(得分:0)

我觉得这样的事情会起作用。不是最好的效率,但它是一块可以咀嚼的骨头。

int[] pixels = image.getRGB(0, 0, image.getWidth(), image.getHeight(), null, 0, image.getWidth())) {
for (int i = 0; i < pixels.length; i++) {
    if (Array.equals(search, Array.copyOfRange(pixels, i, i + search.length)) {
        //found it
    }
}

搜索将是一个整数数组(您的颜色)。