用于Java中屏幕颜色分析的类
我正在寻找一个Java类,它可以让我检查像素(x,y)是红色还是所选屏幕区域的平均颜色是x。是否有一个类支持它?如果没有,我会尝试自己创建这样的类。Java是否有支持此类操作的工具?您可以使用Robot类进行简单的计算,以检查颜色是否接近您要查找的颜色用于Java中屏幕颜色分析的类,java,Java,我正在寻找一个Java类,它可以让我检查像素(x,y)是红色还是所选屏幕区域的平均颜色是x。是否有一个类支持它?如果没有,我会尝试自己创建这样的类。Java是否有支持此类操作的工具?您可以使用Robot类进行简单的计算,以检查颜色是否接近您要查找的颜色 package test; import java.awt.Color; import java.awt.Robot; import java.awt.AWTException; public class main { static
package test;
import java.awt.Color;
import java.awt.Robot;
import java.awt.AWTException;
public class main {
static final Color RED_COLOR = new Color(255, 0, 0);
private static boolean colorsAreClose(Color color1, Color color2, int threshold) {
int r = (int) color1.getRed() - color2.getRed(), g = (int) color1.getGreen() - color2.getGreen(),
b = (int) color1.getBlue() - color2.getBlue();
return (r * r + g * g + b * b) <= threshold * threshold;
}
public static void main(String[] args) {
Color pixelColor = null;
try {
Robot robot = new Robot();
pixelColor = robot.getPixelColor(500, 500);
System.out.println(String.format("Red %d, Green %d, Blue %d", pixelColor.getRed(), pixelColor.getGreen(),
pixelColor.getBlue()));
} catch (AWTException e) {
e.printStackTrace();
return;
}
boolean isRedPixel = colorsAreClose(pixelColor, RED_COLOR, 50);
System.out.println(isRedPixel ? "Pixel is red" : "Pixel is not red");
}
}
封装测试;
导入java.awt.Color;
导入java.awt.Robot;
导入java.awt.AWTException;
公共班机{
静态最终颜色红色=新颜色(255,0,0);
私有静态布尔颜色ECLOSE(颜色颜色1、颜色2、整数阈值){
int r=(int)color1.getRed()-color2.getRed(),g=(int)color1.getGreen()-color2.getGreen(),
b=(int)color1.getBlue()-color2.getBlue();
返回(r*r+g*g+b*b)看,这正是我想要的。谢谢。