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 >> ); } 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? -- Micha [ - 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. |