Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Tutto e di + - RGB
Forum - Tutto e di + - RGB

Avatar
marco1 (Normal User)
Pro


Messaggi: 157
Iscritto: 12/02/2009

Segnala al moderatore
Postato alle 13:09
Giovedì, 23/07/2009
Salve...
Come tutti saprete l'rgb fornisce un colore... in base alla luminosita si 3 colori base (Rosso,Verde e Blu) fornite con un valore byte (da 0 a 255) ora... questi valorivengono convertiti in un sincolo valore da 0 a 16711680... ora io dovrei convertire questo singolo valore nei 3 byte iniziali... chi divoi sà quale calcolo vene usato nella funzione RGB... cosi io posso invertirlo???? :-? :-? :-? :-? :-?

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 14:54
Giovedì, 23/07/2009
Testo quotato

Postato originariamente da marco1:

Salve...
Come tutti saprete l'rgb fornisce un colore... in base alla luminosita si 3 colori base (Rosso,Verde e Blu) fornite con un valore byte (da 0 a 255) ora... questi valorivengono convertiti in un sincolo valore da 0 a 16711680... ora io dovrei convertire questo singolo valore nei 3 byte iniziali... chi divoi sà quale calcolo vene usato nella funzione RGB... cosi io posso invertirlo???? :-? :-? :-? :-? :-?  



Salve,

non so ma e' probabile che quel valore non sia altro che l'intero rappresentato dai tre byte messi in fila, in tal caso basta fare cosi' ( per comodita' te lo scrivo in C ) :

Codice sorgente - presumibilmente Tutto e di +

  1. [...]
  2. // cons. N il numero unico e  B[0], B[1], B[2] i tre byte
  3.  
  4. int I = 0;
  5. while (N != 0) {
  6.    B[I] = N % 256;
  7.    N = N / 256;
  8.    I++
  9. }
  10.  
  11. [...]



Ciao. :k:

Luigi

PM Quote
Avatar
marco1 (Normal User)
Pro


Messaggi: 157
Iscritto: 12/02/2009

Segnala al moderatore
Postato alle 16:23
Giovedì, 23/07/2009
...pensandoci molto-probabilmenta hai ragione... non c'avevo pensato... cmq grazie... :rofl:  :rofl:  :rofl:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:56
Giovedì, 23/07/2009
E' il valore a 24 bit ottenuto dai 3 valori a 8 bit. E' piu' chiaro se lo vedi in esadecimale.

Separi le componenti se scrivi semplicemente

int c1 = rgb & 0xFF;
int c2 = (rgb & 0xFF00) >> 8;
int c3 = (rgb & 0xFF0000) >> 16;

PM Quote