J'essaie de calculer un RGB colors
(0 - 255)
pour une échelle de 0
à 1
. Est-ce que quelqu'un connaît un convertisseur en ligne ou existe-t-il une formule mathématique?
Disons que je souhaite convertir 125 RVB avec une échelle de 0 à 255 en une échelle de 0 à 1.
C'est simplement un cas de division de votre valeur RVB, appelez-le x
par 255
Si x = 95
alors votre valeur est 95/255 = 0.373
(à 3 d.p.)
a = x / 255
ou
x = a * 255
où x
est la valeur RVB et a
est le résultat souhaité.
si vous souhaitez continuer à utiliser 0-255, vous pouvez créer une fonction à cet effet, comme dans l'exemple suivant.
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)
Le moyen le plus simple consiste à diviser par 255 soit pour 0-1, soit 256 pour 0 - un peu moins de 1. Ce dernier présente parfois des avantages. Vous devez faire les divisions en virgule fixe ou en virgule flottante, pas en arithmétique entière, bien sûr.
Cependant, en réalité, la réponse humaine à une valeur de canal rgb entre 0 et 255 n'est pas linéaire, pas plus que la réponse du périphérique. Souvent, vous devez effectuer une correction gamma. Tout cela est très vite impliqué et cela ne compte généralement pas beaucoup pour les graphiques bas de gamme. Toutefois, pour les graphiques haut de gamme, vous souhaitez souvent ne plus avoir aucun espace colorimétrique RVB, puis vous avez besoin de fonctions de conversion non linéaires pour rincer les pixels RVB à l'image finale.