2012-06-01 15 views
17

Ich versuche, einige RGB colors(0 - 255) für eine 0 zu 1 Skala zu berechnen. Kennt jemand einen Online-Konverter oder existiert eine mathematische Formel?rgb Werte auf 0 bis 1 Skala

Lassen Sie uns sagen, dass ich mit 125 RGB konvertieren möchten (0 bis 255 Skala) von 0 nach 1 Skala.

+10

Vielleicht teilen von 255? – MikkoP

+0

Excellent @ el.severo –

Antwort

36

Es ist einfach ein Fall von RGB-Wert teilt, rufen sie x von 255:

Wenn x = 95 dann Wert 95/255 = 0.373 (bis 3 dp)

6
a = x/255 

oder

x = a * 255 

wo x der RGB-Wert ist und a ist das gewünschte Ergebnis.

1

wenn Sie 0-255 weiter benutzen wollen, können Erstellen Sie hierfür eine Funktion wie im folgenden Beispiel.

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

Die einfachste Art und Weise, wenn entweder 255 oder 256 für 0-1 für 0 bis Divide - etwas weniger als 1. Die letzteren Vorteile manchmal hat. Sie müssen die Spaltungen in fester oder die Gleitkommaeinheit, nicht in Integer-Arithmetik, natürlich zu tun.

jedoch die menschliche Reaktion auf einen rgb Kanalwert auf 0-255 in der Tat ist nicht linear, ist weder die Antwort der Vorrichtung. Oft müssen Sie eine Gammakorrektur durchführen. Es wird sehr schnell sehr involviert und es ist normalerweise nicht wichtig für Low-End-Grafiken. Für High-End-Grafik, aber wollen Sie oft aus rgb-Farbraum überhaupt sein, und dann müssen Sie nicht-lineare Umwandlungsfunktionen, um schließlich das RGB-Pixel zum Endbild spülen.

Verwandte Themen