Farbwert in HTML Farbwert umrechnen

  • Hallo,

    ich hab mir ein klein Programm gemacht das Farbwerte vergleicht.
    Aber wie wandle ich den Farbwert in den HTML Farbwert um ?

    [autoit]

    HotKeySet("{Esc}", "_beenden")

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

    #include <GUIConstants.au3>
    GUICreate("Avatar vergleichen", 300, 150)
    GUISetState(@SW_SHOW)

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

    Dim $varx = 210
    Dim $vary = 149
    Dim $Feld1 = PixelGetColor ($varx , $vary)
    Dim $Feld2 = PixelGetColor ($varx + 92, $vary + 541)
    Dim $Feld3 = PixelGetColor ($varx + 186, $vary + 541)
    Dim $Feld4 = PixelGetColor ($varx + 280, $vary + 541)
    Dim $Feld5 = PixelGetColor ($varx + 374, $vary + 541)
    Dim $Feld6 = PixelGetColor ($varx + 468, $vary + 541)
    Dim $Feld7 = PixelGetColor ($varx + 562, $vary + 541)

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

    GUICtrlCreateLabel(" Esc = beenden", 10, 5)
    GUICtrlCreateLabel(" Avater auf x = " & $varx & " y = " & $vary & " Farbe = " & $Feld1 ,10, 20)
    GUICtrlCreateLabel(" Nachbar1 auf x = " & $varx + 92 & " y = " & $vary + 541 & " Farbe = " & $Feld2, 10, 45)
    GUICtrlCreateLabel(" Nachbar2 auf x = " & $varx + 186 & " y = " & $vary + 541 & " Farbe = " & $Feld3, 10, 60)
    GUICtrlCreateLabel(" Nachbar3 auf x = " & $varx + 280 & " y = " & $vary + 541 & " Farbe = " & $Feld4, 10, 75)
    GUICtrlCreateLabel(" Nachbar4 auf x = " & $varx + 374 & " y = " & $vary + 541 & " Farbe = " & $Feld5, 10, 90)
    GUICtrlCreateLabel(" Nachbar5 auf x = " & $varx + 468 & " y = " & $vary + 541 & " Farbe = " & $Feld6, 10, 105)
    GUICtrlCreateLabel(" Nachbar6 auf x = " & $varx + 562 & " y = " & $vary + 541 & " Farbe = " & $Feld7, 10, 120)

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

    While 1 ; auf Tastendruck warten
    Sleep(50)
    WEnd

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

    Func _beenden()
    Exit
    EndFunc ;==>_beenden

    [/autoit]
  • HTML Farbwerte sind "#RRGGBB", das heißt du musst

    [autoit]

    "#"&hex(bitand(pixelgetcolor(...),0x00ffffff),6)

    [/autoit]

    benutzen. So hast du die Alphawerte weggefiltert (ich glaube, dass Pixelgetcolor Alphawerte liefert, sonst kann das BitAND weg) und den Farbcode in richtiger Länge da stehen. Das sollte es sein oder hab ich dich falsch verstanden?

    4 Mal editiert, zuletzt von TheShadowAE (2. Januar 2011 um 22:40)

  • Falls deine Werte mit RGB gegeben sind, hast du ja:
    R[0,255],G[0,255],B[0,255] (Rot, Gelb, Blau)
    Der "html"-Wert ist nichts anderes als diese Werte in ebenjenier Reihenfolge, aber als Hexadezimalwert hinter ein # zu setzen.
    also "#"&Hex(R)&Hex(G)&Hex(B)
    Welche Funktion in Hex umwandelt, musste nachschauen.
    *edit* Grad geschaut die Funktion heißt in Autoit ebenfalls Hex(Wert)

  • Falls du die RGB Farbdarstellung benötigst (wird idR. in HTML verwendet)
    Das Beispiel gibt die Farbe unter der Maus an. Hex() ist das Zauberwort!

    [autoit]

    MsgBox(64, "Farbcode (RGB)", "color: " & "#" & Hex(PixelGetColor(MouseGetPos(0), MouseGetPos(1)), 6))

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!