Eine sich leicht verändernde Farbe abfragen

  • Huhu,

    ich hab eine , für euch wahrscheinlich lächerlich enfache, Frage...
    Ich will eine Farbe abfragen die sich immer leicht verändert, im Falle Blau ist das einmal
    0x7E7FF9

    das andere mal
    0x7E7FFA

    Mein Ziel ist es nun einfach dem Programm klar zu machen dass mir diese letzte stelle der Farbe quasi egal ist... Es soll einfach erkennen ob es blau oder rot ist...


    [autoit]

    $color = pixelgetcolor (400, 268);
    If $color = 0x7E7FF9 MsgBox (0, "Success", "Die Farbe ist Blau"); else MsgBox (0, "Failure", "Die Farbe ist Rot"); Endif

    [/autoit]

    so habe ich das bisher gemacht, habe mir auch überlegt für den 2. blauton einfach ein elseif $color = 0x7E7FFA reinzubauen, problem ist dann aber dass kein 3. blau ton vorkommen darf, weil der dann als nicht blau, dem script nach als als rot erkannt wird...

    Hoffe ich habe mich halbwegs verständlich ausgedrückt :P.

    Da die Frage in der ShoutBox schon kam, wieso sich die farben denn ändern. Punkt ist, dass das Fenster transparent ist und somit das dahinterliegende Objekt durchscheint und somit die Farbe, wenn auch nur sehr geringfügig, verändert :3

    Würde mich über Hilfe dahingehend freuen =)

    Einmal editiert, zuletzt von Bloodlake (29. April 2011 um 05:15)

  • Du fragst die Farbe ab und prüst mit StringLeft
    die ersten sechst Stellen vom Farbwert.

    Ich meine, wenn ich das richtig gelesen habe, das es sechs stellen sind.

    0x und dann die RGB Farbpalette. Die Intensivität des Blauton ist dann egal.

    Spoiler anzeigen
    [autoit]


    $1_Farbe = "0x7E7FF9" ; auslesen, da ich nur Beispielwerte genommen habe
    $2_Farbe = "0x77FFA" ; auslesen, da ich nur Beispielwerte genommen habe

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

    $1_result = StringLeft($1_Farbe, 6)
    MsgBox(0, "Die 3 Zeichen von links lauten:", $1_result)

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

    $2_result = StringLeft($2_Farbe, 6)
    MsgBox(0, "Die 3 Zeichen von links lauten:", $2_result)

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

    If $1_result = $2_result Then
    MsgBox(0,"Meldung", "Beide Werte sind: okay.")

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

    Else
    MsgBox(0,"Meldung", "Ein Wert oder beide Werte sind nicht: Nicht okay.")

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

    EndIf

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Die Shade-Variation von PixelSearch würde sich auch noch anbieten:

    [autoit]


    If IsArray(PixelSearch(1587,492,1587,492,0x7E7FF9,1)) Then ConsoleWrite("Die Farbe ist blau" & @CRLF)

    [/autoit]