在BuffereImage Java中找不到颜色时停止脚本
我目前有一个脚本,它获取一个区域的屏幕盖并搜索该区域中的每个颜色值。但是,我希望在图像的任何区域中都找不到特定颜色时脚本停止运行。我当前的脚本在像素颜色不正确时停止,这不是我想要的在BuffereImage Java中找不到颜色时停止脚本,java,if-statement,while-loop,bufferedimage,Java,If Statement,While Loop,Bufferedimage,我目前有一个脚本,它获取一个区域的屏幕盖并搜索该区域中的每个颜色值。但是,我希望在图像的任何区域中都找不到特定颜色时脚本停止运行。我当前的脚本在像素颜色不正确时停止,这不是我想要的 import java.awt.*; import java.awt.image.BufferedImage; public class Main { public static void main(String args[]) throws AWTException { int i = 0
import java.awt.*;
import java.awt.image.BufferedImage;
public class Main {
public static void main(String args[]) throws AWTException {
int i = 0;
while (i < 1){
BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
BufferedImage image2 = new Robot().createScreenCapture(new Rectangle(70, 102,200,222));
\ for (int y = 0; y < image2.getHeight(); y++) {
for (int x = 0; x < image2.getWidth(); x++) {
Color pixcolor = new Color(image2.getRGB(x, y));
int red = pixcolor.getRed();
int green = pixcolor.getGreen();
int blue = pixcolor.getBlue();
System.out.println("Red = " + red);
System.out.println("Green = " + green);
System.out.println("Blue = " + blue);
if (red == 253 && green == 222 && blue == 131){
continue;
}
else {
System.out.println(x);
System.out.println(y);
i ++;
System.exit(1);;
}
}
}}}}
import java.awt.*;
导入java.awt.image.buffereImage;
公共班机{
公共静态void main(字符串args[])引发AWTException{
int i=0;
而(i<1){
BuffereImage image=new Robot().createScreenCapture(新矩形(Toolkit.getDefaultToolkit().getScreenSize());
BuffereImage image2=new Robot().CreateScreateScreenCapture(新矩形(70102200222));
\对于(int y=0;y
我想做点像这样的工作。基本上我只是用布尔“isFound”来记忆
如果在图片中找到颜色,如果没有,则while循环结束
import java.awt.*;
import java.awt.image.BufferedImage;
public class Main {
public static void main(String args[]) throws AWTException {
boolean isFound = false; // before was Boolean isNotFound = true;
while (!isFound) {
BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
BufferedImage image2 = new Robot().createScreenCapture(new Rectangle(70, 102, 200, 222));
isFound = false;
for (int y = 0; y < image2.getHeight(); y++) {
for (int x = 0; x < image2.getWidth(); x++) {
Color pixcolor = new Color(image2.getRGB(x, y));
int red = pixcolor.getRed();
int green = pixcolor.getGreen();
int blue = pixcolor.getBlue();
System.out.println("Red = " + red);
System.out.println("Green = " + green);
System.out.println("Blue = " + blue);
if (red == 253 && green == 222 && blue == 131) {
isFound = true;
break;
}
}
if (isFound) break;
}
}
}
}
import java.awt.*;
导入java.awt.image.buffereImage;
公共班机{
公共静态void main(字符串args[])引发AWTException{
boolean isNotFound=false;//之前是boolean isNotFound=true;
而(!isFound){
BuffereImage image=new Robot().createScreenCapture(新矩形(Toolkit.getDefaultToolkit().getScreenSize());
BuffereImage image2=new Robot().CreateScreateScreenCapture(新矩形(70102200222));
isFound=false;
对于(int y=0;y
很明显,我在那个代码中将isFound声明为isNotFound是偶然的。因此,如果您只是将isNotFound更改为isfound,我对Java是新手。虽然我认为代码应该可以工作,但它似乎不能工作?