![]() |
Screen nach bestimmter Pixelanordnung (Bild) absuchen
Moin leute :)
Ich hab schon mal ein wenig gegoogelt aber leider nix passendes gefunden. Gibt es eine möglichkeit den screen nach einem bestimmten Bild (oder dessen genaue Pixelanordnung) abzusuchen und die maus darauf zu zentrieren? So dass ich z.B ein kleines Firmenlogo in mein Programm laden kann und, sollte ich während ich surfe auf eine Seite kommen wo dieses angezeigt wird, meine maus darauf zentriert wird um mich aufmerksam zu machen? die Maus bewege ich mit SetCursorPos (??,??), soviel hab ich herausgefunden. aber wie lasse ich mein programm den screen nach dem kleinen bild welches ich vorher geladen habe absuchen, bzw. die maus auf diese coordinaten zentrieren? Liege ich falsch wenn ich denke das sich mein Programm die genau Pixelfolge merken muss um danach suchen zu können? die tutorials wie ich den Screen nach einer bestimmten Pixelfarbe absuchen kann hab ich gelesen, nur leider nichts über die suche nach bestimmten Pixelanordnungen, also bildern :-/ Wäre lieb wenn mir jemand nen tipp geben könnte wie ich weiter zu werke gehen kann. netten gruß aus hamburg |
Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen
Hallo!
Du könntest Dir eine Procedure schreiben, die von dem Fensterinhalt Deines Browsers in Intervallen einen Schnappschuß macht und in diesem nach Deinem Bild suchen. Nur ist dieses A sehr Rechenintensiv (ja nach Intervall) und B ohnehin schwer durchführbar, weil Du damit rechnen mußt, das
Sorry für die aufbauenden Worte. |
Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen
hmmm :?
danke dir für deine antwort. könnte wirklich sehr rechenintensiv werden. würde denn eine einfachere variante funktionieren? gibt es denn z.B keine möglichkeit, den screen nicht nur nach einer pixelfarbe abzusuchen, sondern nach einer pixelkonstelation? das das programm z.B nicht nach einem roten Pixel sucht, sondern nach 4 roten untereinander angeordneten? das könnte ich dann modifizieren, hab nur kaum ideen wie sowas zu realisieren wäre :gruebel: lg |
Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen
Das Realisieren ist kein Problem, nur das richtige Ergebnis zu erhalten...
Wenn die Bilder absolut gleich sind, ist es ja mit Pixelvergleich möglich, aber sobald Du eine Toleranz einbauen musst, wird es eine Spielerei... ![]() ![]() ![]() ![]() ![]() Natürlich könntest Du auch den ganzen Bildschirm durchsuchen, aber dann dauerts u. U. länger. Danach kannst Du nach einer Konstellation suchen, indem Du von 0 bis Width und 0 bis Height alle Pixel durchsuchst. Ist ein Pixel "verdächtig", also in Deinem Fall ein roter, dann prüfst Du den Unterhalb, ist der auch verdächtigt, dann den nächsten, wenn nicht, dann vom letztem Ausgangspunkt aus weiter suchen. |
Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen
Zitat:
|
Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen
Und was erhält man bei ScanLine... alle (Sub)Pixel...
Es stand ja nix da, welche Methode man verwenden soll, also kann nix schneller sein :wink: |
Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen
vielen dank leutz :D
ich denke das wird mir weiterhelfen. hab leider erst nächste woche die möglichkeit es zu testen, werde aber berichten. werd mir die beschrieben befehle mal genauer ansehen :zwinker: |
Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen
Zitat:
|
Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen
@rhodan: Du solltest das Bild per BitBlt auf eine Bitmap kopieren, die 24 Bit hat.
Dann kannst Du die Pixel am einfachsten vergleichen, dazu auch das QuellBitmap (falls Du eines verwendest auch auf 24 Bit setzen) Aber dazu später mehr, wenn Du es erst mal auf nem Bitmap hast. @inherited: Ist ja nicht schlimm, man kann ja seine Meinung frei äußern :-D |
Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen
Danke für die Tipps, hat funktioniert :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz