Lana: Farbeangabe in decimal

Hi!

es soll ja möglich sein eine decimal-Zahl als Farbangabe anzugeben.
Wie wäre die decimal-Zahl für rgb(71, 0, 184)?

Ist meine Vorgehensweise der Umrechnung richtig?
1. RGB in HEX umrechnen
rgb(71, 0, 184) -> #4700b8 (0x4700b8)

2. HEX in Dezimal umrechnen
0x4700b8 -> 4653240

Ist das so richtig?

Lana

  1. Ist meine Vorgehensweise der Umrechnung richtig?

    Hm, Du gibst keine Vorgehensweise an?!

    Das Beispielergebnis könnten flüchtig betrachtet aber richtig sein.

    1. Hi!

      »» Ist meine Vorgehensweise der Umrechnung richtig?

      Hm, Du gibst keine Vorgehensweise an?!

      was ist mit erstens und zweitens?

      Lana

      1. Ach Du hast das als Schritte gemeint. Sorry da habe ich geschlafen.

        Aber willst Du wirklich EINE Dezimalzahl aus drei Dezimalzahlen bzw. Hexadezimalzahlen berechnen?

        Ich frage nur, weil mir nichts einfällt, wofür man das sinnvoll nutzen kann und RGB ist doch schon dezimal.

        1. Hi!

          Ach Du hast das als Schritte gemeint. Sorry da habe ich geschlafen.

          Aber willst Du wirklich EINE Dezimalzahl aus drei Dezimalzahlen bzw. Hexadezimalzahlen berechnen?

          Ich frage nur, weil mir nichts einfällt, wofür man das sinnvoll nutzen kann und RGB ist doch schon dezimal.

          ich habe gtelesen, dass bei einigen Programmiersprachen die Farbangaben im decimal-Format angegeben werden.

          Mich interessiert das nur :-)

          Lana

          1. ich habe gtelesen, dass bei einigen Programmiersprachen die Farbangaben im decimal-Format angegeben werden.

            Ich kann mir aber nicht vorstellen, daß damit gemeint ist, einfach drei Zahlen aneinanderzureihen und wie eine Zahl zu behandeln. Die Hex-Angabe wird zwar zusammengeschrieben, besteht aber aus drei Zahlen (mit i.d.R. je zwei Ziffern).

            Wie gesagt, RGB ist ein Dezimal-Format (aus drei Dezimalzahlen).

            1. Ich kann mir aber nicht vorstellen, daß damit gemeint ist, einfach drei Zahlen aneinanderzureihen und wie eine Zahl zu behandeln. Die Hex-Angabe wird zwar zusammengeschrieben, besteht aber aus drei Zahlen (mit i.d.R. je zwei Ziffern).

              Es ist absolut unsinnig, alle 3 Glieder dieses Farbraums zu einer Zahl zusammenzufassen - RGB ist ein Koordinatensystem mit 3 Achsen.

              Rot (3 x 8 Bit) lässt sich z.B. mit 255 0 0 darstellen - eine Darstellung als 25500 wäre absolut unsinnig - das könnte man dann genausogut als 25 50 0 interpretieren.

              Die Hexadezimaldarstellung wäre FF 00 00 (oder FF 0 0), also 0xFF 0x00 0x00 und keineswegs 0xFF0000 oder gar 0xFF00 - die Hexadezimalzahlen haben nicht idr zwei Ziffern - 0 bis F wird mit nur einer "Ziffer" (bzw. Buchstabe) geschrieben. Lediglich die schreibweise hat sich bei der Hexadezimaldarstellung so eingebürgert, dass man in Oktetten schreibt - von der Seite ist FF0000 ohne Trenner zwischen den Gliedern eindeutig.

              Bei einer Farbtiefe von 3 x 9 Bit käme mann z.B. auf 511 0 0 für Rot, Hexadezimal wären das 1FF 0 0. Da die Geschichte aber nicht durch 8 teilbar ist, ist eine Darstellung in Oktetten etwas unpraktisch und erzeugt unnötig viel Overhead: 01FF 0000 0000.

              Wie gesagt, RGB ist ein Dezimal-Format (aus drei Dezimalzahlen).

              RGB ist kein Dezimalformat, es ist ein Farbraum - dieser lässt sich in 2^8 x 3 darstellen, aber auch mit beliebiger anderer Farbtiefe.

          2. Hi,

            ich habe gtelesen, dass bei einigen Programmiersprachen die Farbangaben im decimal-Format angegeben werden.

            dann solltest Du bei eben diesen Programmiersprachen nachlesen, welches Format diese Dezimalzahl dann haben soll. Nur dann ist es möglich, über eine Umrechnung zu mutmaßen.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hi!

              »» ich habe gtelesen, dass bei einigen Programmiersprachen die Farbangaben im decimal-Format angegeben werden.

              dann solltest Du bei eben diesen Programmiersprachen nachlesen, welches Format diese Dezimalzahl dann haben soll. Nur dann ist es möglich, über eine Umrechnung zu mutmaßen.

              das ist leider etwas her und ich habe das nur noch in Erinnerung.

              Lana

          3. Hallo,

            »» Aber willst Du wirklich EINE Dezimalzahl aus drei Dezimalzahlen bzw. Hexadezimalzahlen berechnen?

            ja, offensichtlich ...

            »» Ich frage nur, weil mir nichts einfällt, wofür man das sinnvoll nutzen kann und RGB ist doch schon dezimal.
            ich habe gtelesen, dass bei einigen Programmiersprachen die Farbangaben im decimal-Format angegeben werden.

            Das ist weniger von einer Programmiersprache, als vielmehr vom verwendeten GUI abhängig. Dem Windows-API kann man Farbangaben beispielsweise genau so übergeben, wie du sie berechnet hast. Aber das wird man im Normalfall nicht machen, weil die Schreibweise mit einem Makro, in dem man die RGB-Anteile direkt notieren kann, meistens wesentlich praktischer ist.

            Mich interessiert das nur :-)

            Abgesehen davon ist der Umweg über die Hex-Darstellung, den du in deinem Anfangsbeitrag darstellst, gar nicht nötig. Du hast die RGB-Komponenten:

            rgb(71, 0, 184)

            Und nun rechnest du sie zusammen:

            color =  71 * 256^2   ( = 4 653 056 )
                     +   0 * 256^1   ( =         0 )
                     + 184 * 256^0   ( =       184 )
               -------------------
                        4653240

            Genau das hattest du auch herausbekommen. :-)

            Ciao,
             Martin

            --
            You say, it cannot be love if it isn't for ever.
            But let me tell you: Sometimes, a single scene can be more to remember than the whole play.
            1. hi!

              Das ist weniger von einer Programmiersprache, als vielmehr vom verwendeten GUI abhängig. Dem Windows-API kann man Farbangaben beispielsweise genau so übergeben, wie du sie berechnet hast. Aber das wird man im Normalfall nicht machen, weil die Schreibweise mit einem Makro, in dem man die RGB-Anteile direkt notieren kann, meistens wesentlich praktischer ist.

              »» Mich interessiert das nur :-)

              Abgesehen davon ist der Umweg über die Hex-Darstellung, den du in deinem Anfangsbeitrag darstellst, gar nicht nötig. Du hast die RGB-Komponenten:

              rgb(71, 0, 184)

              Und nun rechnest du sie zusammen:

              color =  71 * 256^2   ( = 4 653 056 )
                       +   0 * 256^1   ( =         0 )
                       + 184 * 256^0   ( =       184 )
                 -------------------
                          4653240

              ok :-)

              jemand meinte zu mir, dass die Dezimalzahl wie folgt berechnet werden muss/soll
              R * 256^0 + G * 256^1 + B * 256^2

              bei uns ist die Berechnugn wie folgt
              R * 256^2 + G * 256^1 + B * 256^0

              Mich hat die Aussage etwas verwirt, weshalb ich über den HEX Umweg gegangen war.

              Lana

            2. Genau das hattest du auch herausbekommen. :-)

              Jede halbwegs moderne Progammiersprache hat eine brauchbare Routine zum Umrechnen von Zahlenbasen - warum hier händisch herumfuhrwerken? ;)

              1. Hallo,

                »» Genau das hattest du auch herausbekommen. :-)
                Jede halbwegs moderne Progammiersprache hat eine brauchbare Routine zum Umrechnen von Zahlenbasen - warum hier händisch herumfuhrwerken? ;)

                um das Prinzip zu zeigen und zu verstehen - nicht um es real anzuwenden.

                Ciao,
                 Martin

                --
                Wer im Glashaus sitzt, sollte Spaß am Fensterputzen haben.
        2. Hi Texter mit x,

          [...] und RGB ist doch schon dezimal.

          Was meinstn damit? RGB ist doch zunaechst mal nur ein Farbraum. Und Angaben von RGB-Koordinaten sind doch keineswegs immer dezimal - etwa in CSS und HTML.

          viele Gruesse,
          der Bademeister

          1. »» [...] und RGB ist doch schon dezimal.

            Was meinstn damit?

            Bezogen darauf:

            1. RGB in HEX umrechnen

            rgb(71, 0, 184) -> #4700b8 (0x4700b8)

            Ich habe zur Unterscheidung einfach Lanas Bezeichung beibehalten ohne weiter über die Sinnhaftigkeit der Bezeichung nachzudenken.