2012-06-01 15 views
17

Sto provando a calcolare alcuni RGB colors(0 - 255) per una scala da 0 a 1. Qualcuno conosce un convertitore online o esiste una formula matematica?valori rgb su scala 0 a 1

Diciamo che voglio convertire 125 RGB con (scala 0 a 255) su una scala da 0 a 1.

+10

Forse dividi per 255? – MikkoP

+0

Eccellente @ el.severo –

risposta

36

E 'semplicemente un caso di dividere il valore RGB, chiamarla x da 255:

Se x = 95 allora il valore è 95/255 = 0.373 (a 3 dp)

6
a = x/255 

o

x = a * 255 

dove x è il valore RGB e a è il risultato desiderato.

1

se si desidera continuare a utilizzare 0-255 può creare una funzione per questo come il seguente esempio.

function setFillColor2(...) 
    local object,r,b,g=... 
    object:setFillColor(r/255, b/255,g/255) 
end 

circle1 = display.newCircle(150,250, 50) 
setFillColor2(circle1,23,255,12) 
0

Il modo più semplice se dividere per due 255 per 0-1 o 256 per 0 - un po 'inferiore a 1. Quest'ultimo volte ha vantaggi. Devi fare le divisioni in virgola mobile o fissa, non in aritmetica di interi, naturalmente.

Tuttavia in realtà la risposta umana a un valore di canale rgb su 0-255 non è lineare, né la risposta del dispositivo. Spesso è necessario eseguire la correzione gamma. Tutto diventa molto complicato molto rapidamente e di solito non importa molto per la grafica di fascia bassa. Per la grafica di fascia alta, tuttavia, spesso si desidera essere completamente fuori dallo spazio colore rgb e quindi sono necessarie funzioni di conversione non lineari per svuotare definitivamente i pixel rgb nell'immagine finale.