在BufferedImage Java中搜索颜色

时间:2019-05-12 02:42:42

标签: java bufferedimage

我目前有一个脚本,可以创建屏幕的缓冲图像,然后列出特定像素的值。但是,我正在尝试在整个bufferedimage中搜索特定的颜色。有办法吗?

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;

public class Main {
    public static void main(String args[]) throws IOException, AWTException {
        BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));

        int x = 10;
        int y = 10;

        int clr = image.getRGB(x, y);
        int red = (clr & 0x00ff0000) >> 16;
        int green = (clr & 0x0000ff00) >> 8;
        int blue = clr & 0x000000ff;
        System.out.println("Red  = " + red);
        System.out.println("Green  = " + green);
        System.out.println("Blue  = " + blue);
    }
}

1 个答案:

答案 0 :(得分:2)

您可以对图像的每个(x,y)坐标使用嵌套for循环(x在0到image.getWidth()之间,y在0到{ {1}}),然后比较给定位置的颜色是否与您要查找的颜色相等。