Methoden Farbe auf Screenshot suchen

ThiageX

Mitglied
Hallo zusammen,

meine Methode macht leider nicht das was sie soll, deshalb wende ich mich mal an euch Profis.

Ich möchte einen Screenshot machen und eine Farbe auf diesem Screenshot suchen. Wenn diese Farbe gefunden wurde, soll der Mauszeiger dorthin bewegt werden.

Er soll bei der Position x = 0, y= 0 beginnen. Die Auflösung des Bildschirms beträgt 1440x900.

Ich habe das Problem, dass er einfach mehrere Farben auf dem Bild nicht findet. Übersehe ich irgendwas?



Hier mal der Code:

public static void pixelFinden(Robot robot) {
Rectangle area = new Rectangle(0, 0, 1440, 900);
BufferedImage img = robot.createScreenCapture(area);
int h = img.getHeight();
int w = img.getWidth();
WritableRaster r = img.getRaster();
DataBuffer db = r.getDataBuffer();
DataBufferInt dbi = (DataBufferInt) db;
int[] data = dbi.getData();


for (int x_scale = 0; x_scale < w; x_scale++) {
for (int y_scale = 0; y_scale < h; y_scale++) {
int rgb = data[x_scale + w * y_scale];
if (rgb == -1185233) {
robot.mouseMove(area.x + x_scale, area.y + y_scale);

}
}
}
}
 
Bist Du denn sicher, dass die Farbe wirklich vorhanden ist?
Bist Du sicher, dass er die Maus nicht umsetzt?

Der Code sieht erst einmal ok aus - wobei man statt dem getRaster direkt mit getRGB arbeiten könnte.

Was ich noch kurz geprüft habe: Beim Screenshot wird ja kein Alpha Kanal gebraucht. Bei mir wurde dager auch ein BufferedImage vom Typ TYPE_IMAGE_RGB statt TYPE_IMAGE_ARGB erzeugt. Aber die Werte kommen alle mit Alpha = 0xFF, d.h. der Wert, der da gesucht wird, ist realistisch.
 
Bist Du denn sicher, dass die Farbe wirklich vorhanden ist?
Bist Du sicher, dass er die Maus nicht umsetzt?

Der Code sieht erst einmal ok aus - wobei man statt dem getRaster direkt mit getRGB arbeiten könnte.

Was ich noch kurz geprüft habe: Beim Screenshot wird ja kein Alpha Kanal gebraucht. Bei mir wurde dager auch ein BufferedImage vom Typ TYPE_IMAGE_RGB statt TYPE_IMAGE_ARGB erzeugt. Aber die Werte kommen alle mit Alpha = 0xFF, d.h. der Wert, der da gesucht wird, ist realistisch.
Servus Konrad, es funktioniert wunderbar. Es war ein Fehler meinerseits, da ich nach der Änderung einer Farbe nicht gespeichert hatte… bin schon fast daran verzweifelt. Danke dir
 

Zurück
Oben