Guten Morgen,
weiß jemand, wie ich die Pixel Checksumme von einem Bild bekomme, welches als Hex-String im Script steht. Es ist nur eine 10x10 Pixel großes Bild.
Guten Morgen,
weiß jemand, wie ich die Pixel Checksumme von einem Bild bekomme, welches als Hex-String im Script steht. Es ist nur eine 10x10 Pixel großes Bild.
Hallo,
die Checksum musst du dir dann schon selber erstellen, für einen Hex-String funktioniert Checksum schließlich nicht.
Um Checksum zu benutzen müsstest du das Bild wahrscheinlich auf dem Bildschirm anzeigen.
Die Checksum kannst du irgendwie selber berechnen, ich weiß aber nicht genau wie checksum da vorgeht..
PS:
In der Hilfe steht was von ADLER und CRC32, evtl kannst du gucken welches das richtige ist und es nachbauen für Hex-Strings ![]()
EDIT:
Willst du ein Bild auf einem Bildschirm suchen? Dann könntest du auch statt dem HexString die Checksum speichern oder ich kann dir mein Skript dafür mal zeigen, ist aber mit Assembler ![]()
Stimmt, ist wesentlich sinnvoller die Checksum direkt zu speichern.
Genau ich will ein Bild suchen, welches ein Teil eines Screenshots ist von einem externen Programm. Und dann anhand dessen, meine GUI ausrichten. Hast du ein Script, dass die Checksum ausgibt von einem Bild? Dann bitte her damit :D.
Nein ich habe ein Skript, das ein Bild auf dem Bildschirm sucht:
es sucht das Bild das im Ordner ist auf dem Bildschirm, ist quasi ein Prototyp, deswegen nicht sehr variabel, muss man alles im Quellcode ändern, wenn man was haben will.
Danke erstmal. Könntest du es noch als Zip bitte hochladen. Bin mit meinem Android on. Der kann Rar nicht runterladen.
Danke brauchst nicht mehr. Hab's hinbekommen.
Mit der Pausentaste geht die Maus übrigens zur ersten gefundenen Stelle und mit Esc beendet sich das Programm ![]()
Kannst du mir mal genau erklären wie deine Funktion funktioniert?
WEnn ich das noch genau wüsste ![]()
Der Hauptteil liegt ja im ASM-Code
Ich prüfe für jede Position die Differenz der beiden jewiligen Pixel (also Bild und Screen) und prüfe dann mit der angegebenen Toleranz ob der Unterschied zu groß ist, dann kommt die nächste Position. WEnn alle Pixel in Ordnung sind wird die FUnktion abgebrochen und die Koordinaten zurückgegeben
Und wo wird _F aufgerufen???
PushTheButton sucht Bilder auf dem Screen und hat eine Gebrauchsanleitung eingebaut ![]()
_F ist auskommentiert, darin ist der ASM Code, der jetzt in einem Hexcode gespeichert im Script ist
Ist deins denn genauso schnell Andy? ![]()
Ahh in Codebuffer.
Andy: danke. Wenn das schneller, als mit Checksum ist, dann werde ich den Bitmapvergleich machen.
ZitatAndy: danke. Wenn das schneller, als mit Checksum ist....
Checksum lohnt sich nur, wenn du direkt 2 Bilder miteinander vergleichen willst
PtB benutzt diverse Methoden, um Bilder schnellstmöglich zu finden.
Zunächst wird das "Suchbild" analysiert und anhand der darin enthaltenen Farben bezüglich zum gesamten Screen die Suchmethode festgelegt.
Da sowohl die AutoItfunktion stringinstr() sauschnell ist, als auch die (alternative) Assemblerfunktion aus der prospeed.dll dauert die Suche uber den gesamten Screen nur einige Millisekunden.
Darauf zu achten ist, dass die oberste Zeile des zu suchenden Bildes möglichst unterschiedliche Farben enthält!
Dadurch beschleunigt sich die Suche enorm.
Ich sehe schon, ich habe keine Chance gegen deine Optimierung ![]()
Aber unterschiedliche Farben in der ersten Reihe verschnellern auch meine Funktion