RGB์ HSL์ด๋?
RGB๋ ๋นจ๊ฐ(Red)ยท์ด๋ก(Green)ยทํ๋(Blue) ๋น์ ์์ด ์์ ํํํ๋ฉฐ, ๊ฐ ์ฑ๋์ 0๋ถํฐ 255๊น์ง์ ๊ฐ์ ๊ฐ์ง๋๋ค. HSL์ ๊ฐ์ ์์ ์ข ๋ ์ง๊ด์ ์ธ ์ธ ๊ฐ์ง ์์น๋ก ๋ํ๋ ๋๋ค. ์์(Hue)์ 0~360ยฐ์ ์์ํ์์ ์์ด ์์นํ ์ง์ , ์ฑ๋(Saturation)๋ ์์ ์ ๋ช ํ ์ ๋(0~100%), ๋ช ๋(Lightness)๋ ๋ฐ๊ณ ์ด๋์ด ์ ๋(0~100%)์ ๋๋ค. ๋ช ๋๋ ์ฑ๋๋ฅผ ์กฐ์ ํ๋ฉด ๊ณง๋ฐ๋ก "๋ ๋ฐ๊ฒ", "๋ ์ด๋ก๊ฒ", "๋ ์ ๋ช ํ๊ฒ", "๋ ์น์นํ๊ฒ"๋ก ์ด์ด์ง๊ธฐ ๋๋ฌธ์, ๋์์ด๋์๊ฒ๋ HSL์ด ๋ค๋ฃจ๊ธฐ ํจ์ฌ ํธํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๋ณํ๊ธฐ ์ฌ์ฉ ๋ฐฉ๋ฒ
์์์ ๋นจ๊ฐยท์ด๋กยทํ๋ ๊ฐ์ ๊ฐ๊ฐ 0์์ 255 ์ฌ์ด๋ก ์
๋ ฅํ์ธ์. ๊ณ์ฐ๊ธฐ๊ฐ ์ฆ์ ๋์ํ๋ HSL ๊ฐ์ ์๋ ค์ฃผ๋ฉฐ, CSS์ hsl(H, S%, L%) ํํ๋ก ๋ฐ๋ก ๋ถ์ฌ ๋ฃ์ ์ ์์ต๋๋ค.
๋ณํ ๊ณต์ ํ์ด
๋จผ์ ๊ฐ ์ฑ๋์ 255๋ก ๋๋ 0๊ณผ 1 ์ฌ์ด์ ๊ฐ์ผ๋ก ์ ๊ทํํฉ๋๋ค. ์ด ์ค ๊ฐ์ฅ ํฐ ๊ฐ์ max, ๊ฐ์ฅ ์์ ๊ฐ์ min์ด๋ผ๊ณ ํฉ์๋ค. ๋ช ๋๋ \(L = (max + min) / 2\) ๋ก ๊ตฌํฉ๋๋ค. ๋ง์ฝ max์ min์ด ๊ฐ๋ค๋ฉด ๊ทธ ์์ ํ์ ๊ณ์ด์ด๋ฏ๋ก ์ฑ๋์ ์์์ ๋ชจ๋ 0์ด ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๋, ์ฑ๋๋ \(L > 0.5\)์ธ ๊ฒฝ์ฐ \((max - min) / (2 - max - min)\), \(L \le 0.5\)์ธ ๊ฒฝ์ฐ \((max - min) / (max + min)\) ์ผ๋ก ๊ณ์ฐํฉ๋๋ค. ์์์ ์ด๋ ์ฑ๋์ด ์ต๋๊ฐ์ธ์ง์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ฉฐ ๋(ยฐ) ๋จ์(0~360)๋ก ๋ณํ๋ฉ๋๋ค.
$$L = \frac{C_{max} + C_{min}}{2}, \quad S = \begin{cases} \dfrac{\Delta}{2 - C_{max} - C_{min}} & L > 0.5 \\[0.6em] \dfrac{\Delta}{C_{max} + C_{min}} & L \le 0.5 \end{cases}$$
$$\text{where}\quad \left\{ \begin{aligned} R &= \frac{\text{Red}}{255}, \; G = \frac{\text{Green}}{255}, \; B = \frac{\text{Blue}}{255} \\ C_{max} &= \max(R,G,B), \; C_{min} = \min(R,G,B), \; \Delta = C_{max} - C_{min} \end{aligned} \right.$$
$$H = 60^{\circ} \times \begin{cases} \left(\dfrac{G - B}{\Delta}\right) \bmod 6 & C_{max} = R \\[0.7em] \dfrac{B - R}{\Delta} + 2 & C_{max} = G \\[0.7em] \dfrac{R - G}{\Delta} + 4 & C_{max} = B \end{cases}$$
๊ณ์ฐ ์์
ํ ๋งํ ๋ ๋ RGB(255, 99, 71)์ ์๋ก ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ ๊ทํํ๋ฉด (1.0, 0.388, 0.278)์ด ๋ฉ๋๋ค. \(max = 1.0\), \(min = 0.278\)์ด๋ฏ๋ก \(L = 0.639 \to 63.9\%\)์ ๋๋ค. \(L > 0.5\)์ด๋ฏ๋ก $$S = (1.0 - 0.278) / (2 - 1.0 - 0.278) = 0.722 / 0.722 = 1.0 \to 100\%$$์ ๋๋ค. ์ต๋๊ฐ์ด ๋นจ๊ฐ์ด๋ฏ๋ก $$H = 60 \times ((0.388 - 0.278) / 0.722) = 60 \times 0.1525 = 9.1^{\circ}$$์ ๋๋ค. ๊ฒฐ๊ณผ๋ hsl(9, 100%, 64%)์ ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
ํ์ ๊ณ์ด์ ์์ ๊ฐ์ ์ 0์ธ๊ฐ์? ๋นจ๊ฐยท์ด๋กยทํ๋ ๊ฐ์ด ๋ชจ๋ ๊ฐ์ผ๋ฉด ์ฐ์ธํ ์์ด ์์ด ์์์ด ์ ์๋์ง ์์ผ๋ฉฐ, ๊ด๋ก์ 0์ผ๋ก ํ๊ธฐํฉ๋๋ค.
HSL๊ณผ HSV/HSB๋ ๊ฐ์ ๊ฑด๊ฐ์? ์๋๋๋ค. HSL๊ณผ HSV๋ ์์์ ๊ณต์ ํ์ง๋ง ์ฑ๋์ ์ธ ๋ฒ์งธ ๊ฐ์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๊ณ์ฐํฉ๋๋ค. ์ด ๋๊ตฌ๋ HSL ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
๊ฒฐ๊ณผ๋ฅผ CSS์ ๋ฐ๋ก ๋ถ์ฌ ๋ฃ์ด๋ ๋๋์? ๋ค. ์ต์ ๋ธ๋ผ์ฐ์ ๋ hsl(9, 100%, 64%)๋ฅผ ์์ ๊ฐ์ผ๋ก ๊ทธ๋๋ก ์ธ์ํฉ๋๋ค.