Ankündigung

Einklappen
Keine Ankündigung bisher.

Farbanteil aus RGB Wert ermitteln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Farbanteil aus RGB Wert ermitteln

    Hallo,

    irgendwie stehe ich gerade auf dem Schlauch.
    Ich bekomme einen Farbwert geliefert in der Form 100100050 wobei in dem Falle 100% Rot, 100% Grün und 50% Blau ist.
    Weiss jemand auf die schnelle wie ich anhand des Wertes den Rot, den Grün und den Blau Anteil ermitteln kann?

    Rot Anteil müsste ja mit
    Farbe / 1000000 zu bekommen sein. Aber die anderen?

    Weiss jemand Rat?

    Gruss Alex

    #2
    Ja, nimm Dir mal ein Programm, wo Du die RGB Farbwerte eingeben kannst.

    Dann gibst Du für Rot 255 , für Grün 255 und für Blau 127 ein und siehst welche Farbe es ist.
    Das entspricht dann deinen 100 100 050.

    Viel Spass
    „Der Horizont der meisten Menschen ist ein Kreis mit dem Radius 0 und das nennen sie ihren Standpunkt.“ und " Das Wissen entsteht aus Erfahrung, alles andere ist nur Information" Albert Einstein.

    Kommentar


      #3
      Zitat von spassbird Beitrag anzeigen
      Ja, nimm Dir mal ein Programm, wo Du die RGB Farbwerte eingeben kannst.

      Dann gibst Du für Rot 255 , für Grün 255 und für Blau 127 ein und siehst welche Farbe es ist.
      Das entspricht dann deinen 100 100 050.

      Viel Spass
      Hallo und erst einmal Danke für Deine Antwort.
      Aber irgendwie habe ich mich falsch ausgedrückt :-/
      Ich versuche es nochmal zu erklären.
      Anhand der Temperatur ändert sich der Farbwert im Loxone. Die Farbe wird im Lichtbaustein generiert. Am Ausgang bekomme ich dann den Wert in der Form
      100100100 geliefert, wobei die ersten 3 Zahlen der Rot Anteil ist, die naechsten 3 der grün Anteil und die naechsten drei der Blau Anteil.
      Anhand dieser Zahl brauche ich nun einmal den Rot Anteil, einmal den Grün Anteil und einmal den Blau Anteil.

      Beispiel: Ich bekomme 127085201 geliefert, dann brauche ich einmal die 127 für Rot, einmal die 85 für Grün und einmal die 201 für Blau. Irgendwo habe ich mal eine Formel gesehen wo man die Anteile berechnen konnte, aber leider weiss ich nicht mehr wo.

      Hast du eine Idee?

      Gruß Alex

      Kommentar


        #4
        x mal 2,55 ?
        „Der Horizont der meisten Menschen ist ein Kreis mit dem Radius 0 und das nennen sie ihren Standpunkt.“ und " Das Wissen entsteht aus Erfahrung, alles andere ist nur Information" Albert Einstein.

        Kommentar


          #5
          Zitat von Alex D Beitrag anzeigen
          Farbwert 100100050 wobei in dem Falle 100% Rot, 100% Grün und 50% Blau ist.

          Rot Anteil müsste ja mit
          Farbe / 1000000 zu bekommen sein.
          Der Ansatz passt, du brauchst noch eine Abrundung zur Ganzzahl.

          Alles = 100100050
          Rot = int(Alles/1000000)
          Grünblau = Alles - Rot*1000000 = 100050
          Grün = int(Grünblau/1000) = 100
          Blau = Grünblau - Grün * 1000 = 50

          Kommentar


            #6
            Zitat von volkerm Beitrag anzeigen

            Der Ansatz passt, du brauchst noch eine Abrundung zur Ganzzahl.

            Alles = 100100050
            Rot = int(Alles/1000000)
            Grünblau = Alles - Rot*1000000 = 100050
            Grün = int(Grünblau/1000) = 100
            Blau = Grünblau - Grün * 1000 = 50
            Hallo volkem,

            auch Dir Danke erst einmal für Deine Hilfe,

            aber es schaut so aus als würde das nicht ganz stimmen

            Bei Grünblau multiplizierst du rot mit 1000000 aber um rot zu errechnen teilst du alles durch 1000000, also ist doch der grünblaue Anteil = dem gesamt oder?

            Ich bin gerade am probieren, aber da tue ich mich nen bissl schwer. Ich muss eine Formel eingeben am Ausgang. Ein Umweg über grünblau kann ich somit nicht gehen

            Kommentar


              #7
              Kannst du modulo rechnen in der Formel ? Dann ist grün - blau der Teilrest von rot / 1000000 dann kannst seine Formel einfach in ein ander einsetzen

              Grün = int ((alles%1000000 )/ 1000) usw
              Hans Martin

              Problem? "Verstehe das Problem!"

              Kommentar


                #8
                Hallo,

                nein das kann ich nicht. Alles was der Server unterstütz ist hier aufgeführt

                http://www.loxone.com/dede/service/d...mm/formel.html

                Kommentar


                  #9
                  Zitat von Alex D Beitrag anzeigen
                  Bei Grünblau multiplizierst du rot mit 1000000 aber um rot zu errechnen teilst du alles durch 1000000, also ist doch der grünblaue Anteil = dem gesamt oder?
                  Du hast das int() übersehen, das nur den ganzzahligen Anteil übernimmt und die Nachkommastellen abschneidet.

                  Kommentar


                    #10
                    Ohje da ist nicht viel ^^ ... ohne casten wirds schwierig ....
                    Hans Martin

                    Problem? "Verstehe das Problem!"

                    Kommentar


                      #11
                      Zitat von MiniMaxV2 Beitrag anzeigen
                      Ohje da ist nicht viel ^^ ... ohne casten wirds schwierig ....
                      Nicht viel? Nicht viel? Immerhin ist es Loxone!
                      „Der Horizont der meisten Menschen ist ein Kreis mit dem Radius 0 und das nennen sie ihren Standpunkt.“ und " Das Wissen entsteht aus Erfahrung, alles andere ist nur Information" Albert Einstein.

                      Kommentar


                        #12
                        irgendwie bekomme ich das nicht hin.

                        Mein Farbwert frage ich über i1 ab

                        für rot habe ich die Formel genommen

                        int(i1/1000000) -> Wert passt!

                        für grün habe ich folgenden genommen

                        int((i1-(int(i1/1000000)*1000000)/1000) -> passt nicht!

                        Irgendwas mache ich falsch :-/

                        Kommentar


                          #13
                          Eben
                          Versuch mal das ohne cast oder runden zu rechnen welcher Hersteller kommt auf die Idee eine Formel engine ohne runden / casten zu bauen
                          Hans Martin

                          Problem? "Verstehe das Problem!"

                          Kommentar


                            #14
                            int((i1-(int(i1/1000000)*1000000)/1000) da fehlt ne klammer :int((i1-(int(i1/1000000)*1000000))/1000)
                            Punkt vor Strich schlägt da zu
                            Hans Martin

                            Problem? "Verstehe das Problem!"

                            Kommentar


                              #15
                              Ok, nun passen immerhin schon 2 Werte.... hab ich nun nur noch Probleme mit einem :-s

                              Kommentar

                              Lädt...
                              X