PixelGetColor ohne bestimmte breiche

  • Hi, ich bin neu hier im Forum und hab 1 Problem.
    Ich muss den Befehl PixelSearch verwenden. Das Problem ist jetzt, das er im Prinzip den ganzen Bildshchirm absuchen soll, aber ein kleiner berich oben im Eck nicht.
    Wie kann man eine Funktion schreiben, bei der man bestimmte Bereiche auslassen kann. Ich bin Anfänger, und hoffe, dass mir jemand helfen kann. :S
    Danke schonmal,
    anno2008

  • Es kommt darauf an wo genau sich der Bereich befindet, aber grundsätzlich geht es folgendermaßen :

    [autoit]


    $Links = [Linker Rand des Bereichs]
    $Rechts = [Rechter Rand des Bereichs]
    $Oben = [Oberer Rand des Bereichs]
    $Unten = [Unterer Rand des Bereichs]

    For $x = 1 To [Bildschirmbreite]
    For $y = 1 To [Bildschirmhöhe]
    If Not ($x >= $Links And $x <= $Rechts And $y >= $Oben And $y <= Unten) Then
    [Hier die Suche machen]
    EndIf
    Next
    Next

    [/autoit]
  • Hi,
    @gtaspiuder
    Wie man PixelSearch macht weiss ich, es ging darum, einen bestimmten Breich aus PixelSearch auszulassen.

    @JanSchmidt
    Danke erstmal fuer deine Antwort. Nice Support hier. :thumbup:
    Die variabeln
    $Links = [Linker Rand des Bereichs]
    $Rechts = [Rechter Rand des Bereichs]
    $Oben = [Oberer Rand des Bereichs]
    $Unten = [Unterer Rand des Bereichs]
    Die stehn doch fuer den Bereich der ausgelassen werden soll, oder?

    anno2008

  • Jupp!
    So jetzt aber schnell weg hier ;)
    Falls Du noch Fragen hast versuch ich sie sofort Morgen früh zu beantworten.

  • Hi,
    jap, ich hab noch ne Frage xD. So in etwa soll das aussehen

    [Blockierte Grafik: http://img137.imageshack.us/img137/1636/59750688pm8.jpg
    Also

    [autoit]

    PixelSearch(24, 48, 1116, 722, 0xEB1609

    [/autoit]


    Und jetzt noch das Quadrat oben weg.
    Was soll bei Bildschrimbreite und hoehe hin?
    Also z.B. 1152 und 864?
    Wenn ich das mit den Angaben in dein Script schreibe und ausprobiere erzaehlt er mit immer er haette die Farbe gefunden, obwohl sie ganz sicher nicht auf dem Bildschrim ist. Kannst du mir noch einmal Helfen morgen und das in ein Script schreiben?
    Danke,
    anno2008

    Einmal editiert, zuletzt von anno2008 (27. Februar 2008 um 18:19)

  • Da PixelSearch immer den ersten Treffer zurückgibt, würde ich zwei Suchbereiche machen:

    [Blockierte Grafik: http://img169.imageshack.us/img169/1610/59750688pm8wi0.jpg]

    Spoiler anzeigen
    [autoit]


    Func _MyPixelSearch()
    $Suchbereich1 = PixelSearch(24,48,1050,722,0xEB1609)
    If Not @error Then
    MsgBox(64,'Gefunden in Suchbereich 1','X: ' & $Suchbereich1[0] & 'Y: ' & $Suchbereich1[1])
    EndIf
    $Suchbereich2 = PixelSearch(1050,117,1050,722,0xEB1609)
    If Not @error Then
    MsgBox(64,'Gefunden in Suchbereich 2','X: ' & $Suchbereich2[0] & 'Y: ' & $Suchbereich2[1])
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)