amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Amiga, AmigaOS 4 > RGB-Werte umrechnen? [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

15.11.2001, 21:20 Uhr

Torge_signet2
Posts:
[Ex-Mitglied]
Frage: Aus einer Funktion RGB(r,g,b), wobei r, g, b jeweils Werte von 0 bis 255 annehmen wird ein Farbwert erstellt, der zwischen 0 und 256^3 liegt (Farbewert 24 bit). Wie kann ich aber von diesem Wert, der als eine Ganzzahl existiert wieder auf die RGB-Werte rückrechnen???

Vielen Dank für Lösungen...

?( Gruß, Torben

[ - Ändern - Antworten - Zitieren - Direktlink - ]

15.11.2001, 22:02 Uhr

AC-FoX
Posts: 35
Nutzer
Hallo Torben,

also eigentlich brauchst du nur die 3 Bytes wieder aus dem 32 bit Int extrahieren.
Beispiel:

BYTE blue(RGB)
{
return (0xff & RGB);
}

BYTE green(RGB)
{
return (0xff & (RGB >> 8) );
}

BYTE red(RGB)
{
return (0xff & (RGB >> 16));
}

Das sollte klappen, wenn man mal animmt, daß du eine Ganzzahl übergibst, die 0RGB organisiert ist.
Mit dem (0xff & ..) maskierst du genau ein Byte aus, das zurückgegeben wird. Mit dem (RGB >> ...) shiftest (schiebst) du die Ganzzahl die entsprechende Anzahl von Stellen nach rechts.

Gruß

[ - Antworten - Zitieren - Direktlink - ]

15.11.2001, 22:04 Uhr

AC-FoX
Posts: 35
Nutzer
Denk dir mal statt des Smileys eine 8 und eine geschlossene Klammer danach. Wurde hier als Smiley interpretiert.

Gruß

[ - Antworten - Zitieren - Direktlink - ]

15.11.2001, 23:17 Uhr

Torge
Posts:
[Ex-Mitglied]
1. Danke für die schnelle Hilfe.
2. Das ist die Lösung in einer Programmiersprache, aber mich interessiert auch, wie man das mathematisch berechnen kann.
r=
g=
b=

:( Torben

[ - Ändern - Antworten - Zitieren - Direktlink - ]

16.11.2001, 08:59 Uhr

Micha1701
Posts: 938
Nutzer
Hi!

Also wenn Du den 32 / 24 bit Wert in Hexadezimal umrechnest, dann kannst Du die Farben "sehen"...

Beispiel:

Du hast den Dezimalfarbwert 3250535 (sanftes Mintgrün)
In Hexadezimal ist das $319967

Rotanteil: $31 -> 49 (Dezimal)
Grünanteil: $99 -> 153 (Dezimal)
Blauanteil: $67 -> 103 (Dezimal)

Ist es das, was Du meinst?
--

:boing: Micha :boing:

[ - Antworten - Zitieren - Direktlink - ]

16.11.2001, 09:12 Uhr

thomas
Posts: 7718
Nutzer

Du kannst die Zahl auch dreimal durch 256 teilen. Der Divisionsrest ergibt jeweils den Wert für blau, grün und rot (von rechts nach links).

Michas Beispiel:

3250535 / 256 = 12697 Rest 103
12697 / 256 = 49 Rest 153
49

=> Blau = 103, Grün = 153, Rot = 49

Das ist das gleiche Verfahren wie bei Umrechnung von dezimal nach hexadezimal oder binär.

Gruß Thomas

--
Email: thomas-rapp@web.de

Home: home.t-online.de/home/thomas-rapp/


[ - Antworten - Zitieren - Direktlink - ]

17.11.2001, 10:09 Uhr

Torge_signet3
Posts:
[Ex-Mitglied]
Genau! Danke, das war die Antwort!:bounce:

[ - Ändern - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Amiga, AmigaOS 4 > RGB-Werte umrechnen? [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.