HSL color (Français)

L'espace de couleur HSL (en français TSL, teinte (H=hue), saturation (S=saturation) et luminosité (L=Lightness)) est basé sur la façon dont les humains perçoivent les couleurs, et rend ainsi différentes transformation de couleurs esthétiquement agréables très simples. Au lieu de dire la quantité de lumière qu'un moniteur doit émettre (ça n'est pas une manière très naturelle de penser les couleurs), les couleurs sont décrites sous formes de teinte, saturation et luminosité.

  • Hue (teinte) décrit la position dans le spectre des couleurs. Lorsque la teinte augmente, une couleur va transiter vers la couleur suivante dans cet ordre : Rouge, orange, jaune, vert, cyan, bleu, violet, pourpre, magenta, rouge.
  • Saturation Précise à quelle point la couleur est vibrante. Varie de gris à couleur pure.
  • Lightness (luminosité) précise si la couleur est claire ou sombre. Varie de noir à blanc. La valeur du milieu correspond soit à gris (lors d'une saturation basse) soit à une couleur (lors d'une saturation élevée).

Voici une fonction que l'utilisateur Taehl a écrit pour convertir les couleurs TSL (HSL) vers RVB (RGB) (Rouge, vert bleu) :

-- Convertir TSL en RVB. (plage d'entrée et de sortie: 0 - 255)
function HSL(h, s, l, a)
	if s<=0 then return l,l,l,a end
	h, s, l = h/256*6, s/255, l/255
	local c = (1-math.abs(2*l-1))*s
	local x = (1-math.abs(h%2-1))*c
	local m,r,g,b = (l-.5*c), 0,0,0
	if h < 1     then r,g,b = c,x,0
	elseif h < 2 then r,g,b = x,c,0
	elseif h < 3 then r,g,b = 0,c,x
	elseif h < 4 then r,g,b = 0,x,c
	elseif h < 5 then r,g,b = x,0,c
	else              r,g,b = c,0,x
	end return (r+m)*255,(g+m)*255,(b+m)*255,a
end

Elle peut être utilisée, par exemple, comme ceci : love.graphics.setColor(HSL(150,100,200)) (ceci colorera les choses dans un bleu grisâtre).



Autres langues