amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Amiga, AmigaOS 4 > RGB-Werte umrechnen? [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2001-11-15, 21:20 h

Torge_signet2
Posts:
[Former member]
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

[ - Edit - Answer - Quote - Direct link - ]

2001-11-15, 22:02 h

AC-FoX
Posts: 35
User
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ß

[ - Answer - Quote - Direct link - ]

2001-11-15, 22:04 h

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

Gruß

[ - Answer - Quote - Direct link - ]

2001-11-15, 23:17 h

Torge
Posts:
[Former member]
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

[ - Edit - Answer - Quote - Direct link - ]

2001-11-16, 08:59 h

Micha1701
Posts: 938
User
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:

[ - Answer - Quote - Direct link - ]

2001-11-16, 09:12 h

thomas
Posts: 7717
User

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/


[ - Answer - Quote - Direct link - ]

2001-11-17, 10:09 h

Torge_signet3
Posts:
[Former member]
Genau! Danke, das war die Antwort!:bounce:

[ - Edit - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Amiga, AmigaOS 4 > RGB-Werte umrechnen? [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.