[AU3] PixelSearch in if then einbinden

12/17/2006 17:24 Term!nX#1
Hallo,

ich würde gerne eine bestimmte Region nach einer bestimmten Pixelfarbe durchsuchen, und wenn diese gefunden wird, soll eine bestimmte Sache ausgeführt werden.

1. verstehe ich nicht, wie ich das Rechteck bestimme. Also welche Pixelkoordinaten ich bei left, right, bottom und top angeben muss.

2. Wenn ich das dann habe, dann müsste ich dieses Rechteck danach absuchen, wenn die Farbe gefunden wurde, dann müsste eine Funktion ausgeführt werden. Beispielsweise:

PixelSearch(x, y, x, y, Farbe)
if not @error then
Funktion
EndIf

Das funktioniert so halb, brauche nur noch eine Möglichkeit, eine Funktion auszuführen, wenn die Farbe nicht gefunden wurde, sprich @error true ist.

Aber vielleicht hab ichs doch irgendwie richtig, nur einen dummen Fehler gemacht, weil ich das mit dem Rechteck nicht kapiere. Naja hoffe, jemand kann mir helfen ;)
12/17/2006 18:43 Maybe It's Maybelline#2
Zauberwort ist Else!
12/17/2006 21:16 Term!nX#3
Richtig, die gute alte Else hab ich auch eingebunden, aber das Problem lag nicht bei der Else, wie ich voerst dachte, sondern beim Definieren des Rechtecks. Der Rest hat sich schon gelöst. Da steht folgendes:
PixelSearch
--------------------------------------------------------------------------------

Searches a rectangle of pixels for the pixel color provided.


PixelSearch ( left, top, right, bottom, color [, shade-variation] [, step]] )




Parameters

left left coordinate of rectangle.
top top coordinate of rectangle.
right right coordinate of rectangle.
bottom bottom coordinate of rectangle.
colour Colour value of pixel to find (in decimal or hex).
shade-variation [optional] A number between 0 and 255 to indicate the allowed number of shades of variation of the red, green, and blue components of the colour. Default is 0 (exact match).
step [optional] Instead of searching each pixel use a value larger than 1 to skip pixels (for speed). E.g. A value of 2 will only check every other pixel. Default is 1.



Return Value

Success: Returns a two-element array of pixel's coordinates. (Array[0] = x, Array[1] = y)
Failure: Sets @error to 1 if color is not found.



Remarks

The search is performed left-to-right, top-to-bottom and the first match is returned.

Ich hab nur nicht den blassesten Schimmer, welche X und Y Werte ich bei bottom, top, left und right einsetzen soll.
12/22/2006 14:46 cambium#4
ist doch einfach also :

Du musst diese 4 Koordinaten eingeben.
Die vier Koordinaten beschreiben aber nicht die ecken eines vierecks sondern die seiten.



TOP : waagrechter strich , der das viereck nach oben hin begrenzt , also die Y-koordinate

BOTTOM : waagrechter strich der das viereck nach unten begrenzt ebenfalls mit Y-Koordinate angeben.


Left und Right , sind die seitlichen striche , also mit X-Koordinaten fuettern.


Einfach mal nen Achsenkreuz auf dem bildschirm vorstellen und fertig
12/22/2006 14:54 Term!nX#5
Nei ich hatte ne falsche Vorstellung. Man muss die Koordinaten des Punktes links-oben und die Koordinaten des Punktes rechts-unten angeben. Diese beiden Punkte bilden die Referenzen für das Rechteck. btw, das Prob ist schon längst gelöst. Kann geclosed werden.