HSL color (日本語)

HSL 色彩空間は人間の色の知覚方法に基づいたものであり、そして同様に、審美的な心地よさによる色彩変換を非常に簡単にします。モニターにおける光の放射量を表現するのではなく (色彩に関しての考えとして非常に不自然な方法である)、色彩は、色相、彩度、輝度の用語により記述されます。

  • Hue (色相) は、どの色領域であるかを記述します。色相の拡大において、色は以下の順に遷移します: 赤色、橙色、黄色、緑色、シアン色、青色、スミレ色、紫色、マゼンタ色、赤色。
  • Saturation (彩度) は色の鮮やかさを意味します。範囲は灰色から紫色までです。
  • Lightness (輝度) は、どのくらいの色の明るさまたは暗さにするかについてです。黒色から白色までの範囲です。中間は灰色 (低彩度であれば) または色 (高彩度であれば) のいずれかになります。

こちらは Taehl により記述された HSL 色 から RGB へ変換する関数です:

-- HSL から RGB へ変換 (入力および出力の範囲: 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

これは例えば、この様に使用できます: love.graphics.setColor(HSL(150,100,200)) (これは灰色がかった青色で着色されます)


そのほかの言語