画面上の画像をすばやく見つける方法はありますか?
私はそれが好きでした:(その前に私はRobot.createScreenCapture(...)で画面をキャプチャしました)
public static Point search(BufferedImage big, BufferedImage small) {
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
long time=System.currentTimeMillis();
for (int x = 0; x < big.getWidth() - small.getWidth(); x++) {
for (int y = 0; y < big.getHeight() - small.getHeight(); y++) {
if (compare(x, y, big, small)) {
return new Point(x, y);
}
}
}
System.out.println(System.currentTimeMillis()-time);
return null;
}
private static boolean compare(int xs, int ys, BufferedImage img1, BufferedImage img2) {
for (int x = 0; x < img2.getWidth(); x++) {
for (int y = 0; y < img2.getHeight(); y++) {
if (img1.getRGB(x + xs, y + ys) != img2.getRGB(x, y)) {
return false;
}
}
}
return true;
}
ただし、200ミリ秒かかることもあれば、10000ミリ秒かかることもあります。:(
編集:誰かがAutohotkeyを知っているなら、それは別のプログラミング言語であり、数ミリ秒でそれらの画像を見つける「ImageSearch」と呼ばれる関数があります...(私が思うにC ++に基づく)