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 >> ); } 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? -- Micha [ - Answer - Quote - Direct link - ] |
2001-11-16, 09:12 h thomas Posts: 7718 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. |