Hex Farbverlauf mit definierter Anzahl

  • Hi,

    ich brauche eine Funktion welches das was diese Webseite macht: http://www.finalnet.de/tools/farbverlauf.php in Autoit abbildet. Als Ergebnis der Funktion brauch ich dann einen Array mit den Hexwerten.

    Habe leider grade so gar keine Idee wie man das umsetzt.

    mfg

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (1. April 2014 um 10:26)

  • Vielleicht verstehe ich dich ja falsch...
    Aber das ist doch eigentlich relativ simpel?
    (Im Browser getippt, kein Gewähr!)

    [autoit]


    Func _ColorGradient($iStart, $iStop, $iStep = 10)
    $iArraySize = Int(Abs($iStart - $iStop) / $iStep)
    Local $aReturn[$iArraySize]
    For $i = 0 To $iArraySize - 1
    $aReturn[$i] = $iStart + $iStep * $i
    Next
    Return $aReturn
    EndFunc

    [/autoit]


    So (oder ähnlich) sollte das doch gehen?

    Gruß

  • Naja da kommt irgendwas um die 4 Millionen Ergebnisse dann raus und auch die Werte die rauskommen sind nicht richtig.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    2 Mal editiert, zuletzt von chip (31. März 2014 um 16:49)

  • Das sollte exakt die Funktion der Seite nachbilden

    [autoit]

    #include<array.au3>
    #include <WinAPIGdi.au3>
    $iSchritte=10+2;+2 für Start und Endwerte
    $iStartwert=0xBF3F00
    $iEndwert=0xFFFF00
    Dim $a_iergebnis[$iSchritte][3];Array für Farben (in R G B getrennt)

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

    $iR_alt = _WinAPI_GetRValue($iStartwert);einzelne Farbanteile holen
    $iG_alt = _WinAPI_GetGValue($iStartwert);dito
    $iB_alt = _WinAPI_GetBValue($iStartwert);..

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

    $iR_neu = _WinAPI_GetRValue($iEndwert);einzelne Farbanteile holen
    $iG_neu = _WinAPI_GetGValue($iEndwert);dito
    $iB_neu = _WinAPI_GetBValue($iEndwert);..

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

    $fR_schrittweite=($iR_neu-$iR_alt)/($iSchritte-1);schrittweite Rot
    $fG_schrittweite=($iG_neu-$iG_alt)/($iSchritte-1);schrittweite Grün
    $fB_schrittweite=($iB_neu-$iB_alt)/($iSchritte-1);schrittweite Blau

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

    For $i1=0 to $iSchritte -1
    $a_iergebnis[$i1][0]=Round($iR_alt+($fR_schrittweite*$i1));Berechnen und Runden
    $a_iergebnis[$i1][1]=Round($iG_alt+($fG_schrittweite*$i1));...
    $a_iergebnis[$i1][2]=Round($iB_alt+($fB_schrittweite*$i1));..
    Next
    _ArrayDisplay($a_iergebnis);Anzeige

    [/autoit]
  • Perfekt, danke ihr zwei genau das was ich gesucht habe :).

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.