MCP๋กœ ์—ฐ๊ฒฐ โ†’

๊ณ„์‚ฐ ์ž…๋ ฅ

๊ณต์‹

๊ด‘๊ณ 

๊ฒฐ๊ณผ

ํ—ฅ์Šค ์ƒ‰์ƒ ์ฝ”๋“œ
#4080BF
๋นจ๊ฐ• (R) 64
์ดˆ๋ก (G) 128
ํŒŒ๋ž‘ (B) 191
RGB rgb(64, 128, 191)

HSL โ†’ Hex ๋ณ€ํ™˜๊ธฐ๋ž€?

์ด ๋„๊ตฌ๋Š” HSL ๋ชจ๋ธ โ€” ์ƒ‰์ƒ(Hue), ์ฑ„๋„(Saturation), ๋ช…๋„(Lightness) โ€” ๋กœ ํ‘œํ˜„๋œ ์ƒ‰์„ CSS, ๋””์ž์ธ ์†Œํ”„ํŠธ์›จ์–ด, ์›น ๊ฐœ๋ฐœ์—์„œ ์‚ฌ์šฉํ•˜๋Š” 16์ง„์ˆ˜(ํ—ฅ์Šค) ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. HSL์€ ์‚ฌ๋žŒ์ด ์ง๊ด€์ ์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์ข‹์€๋ฐ, ์ƒ‰์ƒ์€ ์ƒ‰์ƒํ™˜์—์„œ ์–ด๋–ค ์ƒ‰์ธ์ง€๋ฅผ ๊ณ ๋ฅด๊ณ , ์ฑ„๋„๋Š” ์ƒ‰์˜ ์„ ๋ช…ํ•จ์„, ๋ช…๋„๋Š” ์–ผ๋งˆ๋‚˜ ์–ด๋‘ก๊ฑฐ๋‚˜ ๋ฐ์€์ง€๋ฅผ ์กฐ์ ˆํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ํ—ฅ์Šค(์˜ˆ: #3F7FBF)๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ ๊ฐ์ข… ๋„๊ตฌ๊ฐ€ ์‹ค์ œ๋กœ ์ธ์‹ํ•˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค.

HSL color model shown as a cylinder with hue around the circumference, saturation along the radius and lightness up the vertical axis
The HSL color model: hue (angle), saturation (radius) and lightness (height).

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

์ƒ‰์ƒ(Hue)์„ 0~360๋„, ์ฑ„๋„(Saturation)๋ฅผ 0~100ํผ์„ผํŠธ, ๋ช…๋„(Lightness)๋ฅผ 0~100ํผ์„ผํŠธ๋กœ ์ž…๋ ฅํ•˜๋ฉด, ๊ทธ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜ค๋Š” ํ—ฅ์Šค ์ฝ”๋“œ, RGB ์ฑ„๋„ ๊ฐ’, ๊ทธ๋ฆฌ๊ณ  ์‹ค์‹œ๊ฐ„ ์ƒ‰์ƒ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ณ€ํ™˜์€ ๋ชจ๋“  ์ƒ‰์— ๋ณดํŽธ์ ์œผ๋กœ ์ ์šฉ๋˜๋ฉฐ, ๋ณ„๋„์˜ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

๋ณ€ํ™˜ ๊ณต์‹ ํ’€์ด

๋ณ€ํ™˜์€ ๋จผ์ € ์ฑ„๋„(chroma) \(C = (1 - |2L - 1|)\cdot S\) ๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ S์™€ L์€ 0~1 ์‚ฌ์ด์˜ ์†Œ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ณด์กฐ ๊ฐ’ \(X = C\left(1 - \left|\left(\tfrac{H}{60}\bmod 2\right) - 1\right|\right)\) ๋Š” ๊ธฐ๋ณธ ์ƒ‰์ƒ ์‚ฌ์ด์˜ ๊ทธ๋ผ๋ฐ์ด์…˜์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ฐ๊ธฐ ๋ณด์ •๊ฐ’ \(m = L - \tfrac{C}{2}\) ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋ช…๋„๋กœ ๋Œ์–ด์˜ฌ๋ฆฝ๋‹ˆ๋‹ค. ์ƒ‰์ƒ์ด ์–ด๋А 60ยฐ ๊ตฌ๊ฐ„์— ์†ํ•˜๋Š”์ง€์— ๋”ฐ๋ผ (Rโ€ฒ,Gโ€ฒ,Bโ€ฒ) ์ฑ„๋„์ด C, X, 0 ์ค‘์—์„œ ๋ฐฐ์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ตœ์ข… ์ฑ„๋„์€ \(\text{round}((c^{\prime} + m)\cdot 255)\) ๋กœ ๊ณ„์‚ฐ๋˜๋ฉฐ, ํ—ฅ์Šค ๋ฌธ์ž์—ด์€ R, G, B์˜ ๋‘ ์ž๋ฆฌ 16์ง„์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์ธ ๊ฒƒ์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค.

$$\text{Hex} = \texttt{\#}\,\text{HH}_{R}\,\text{HH}_{G}\,\text{HH}_{B}$$

$$\text{where}\quad \left\{ \begin{aligned} C &= (1 - |2L - 1|)\cdot S \\ X &= C\left(1 - \left|\left(\tfrac{H}{60}\bmod 2\right) - 1\right|\right) \\ m &= L - \tfrac{C}{2} \\ (R,G,B) &= \text{round}\big((R^{\prime}+m,\,G^{\prime}+m,\,B^{\prime}+m)\cdot 255\big) \\ H &= \text{Hue},\quad S = \dfrac{\text{Sat}}{100},\quad L = \dfrac{\text{Light}}{100} \end{aligned} \right.$$

Flat process diagram showing HSL values transformed into RGB channels and then into a hex code
Conversion flow: HSL values map to intermediate C, X, m, then to RGB and finally a hex string.

๊ณ„์‚ฐ ์˜ˆ์‹œ

HSL(210, 50%, 50%)์˜ ๊ฒฝ์šฐ: \(S = 0.5\), \(L = 0.5\) ์ด๋ฏ€๋กœ \(C = (1 - |0|)\times 0.5 = 0.5\). \(H/60 = 3.5\) ์ด๋ฏ€๋กœ \((3.5 \bmod 2) = 1.5\) ์ด๊ณ  \(X = 0.5\times(1 - |0.5|) = 0.25\). \(m = 0.5 - 0.25 = 0.25\). ์ƒ‰์ƒ 210์€ 3๋ฒˆ ๊ตฌ๊ฐ„(180~240)์— ์†ํ•˜๋ฏ€๋กœ \((R^{\prime},G^{\prime},B^{\prime}) = (0, X, C)\)๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ \(R = \text{round}(0.25\times 255) = 64\), \(G = \text{round}(0.5\times 255) = 128\), \(B = \text{round}(0.75\times 255) = 191\) โ†’ #4080BF.

Single example color swatch with its HSL, RGB and hex representations side by side
A worked example: one color shown as HSL, RGB and its resulting hex code.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

์ƒ‰์ƒ ๊ฐ’์€ ํ•œ ๋ฐ”ํ€ด ๋Œ์•„๊ฐ€๋‚˜์š”? ๋„ค โ€” ์ƒ‰์ƒ 360์€ 0๊ณผ ๋˜‘๊ฐ™์€ ๋นจ๊ฐ•์ด๋ฉฐ, ์ด ๋„๊ตฌ๋Š” ์–ด๋–ค ๊ฐ’์ด๋“  0~360 ๋ฒ”์œ„๋กœ ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ฑ„๋„ ๊ฐ’์ด ๋‹ค๋ฅธ ๋„๊ตฌ์™€ 1 ์ •๋„ ์ฐจ์ด ๋‚˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ •์ˆ˜๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋ฉด, ์†Œ์ˆ˜์ ์„ ๋ฒ„๋ฆฌ๋Š”(truncate) ๋‹ค๋ฅธ ๋„๊ตฌ์™€ ๋น„๊ตํ•ด ์ฑ„๋„ ๊ฐ’์ด ยฑ1 ๋งŒํผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์˜ฌ๋ฆผ์ด ๋” ์ •ํ™•ํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

ํšŒ์ƒ‰๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‚˜์š”? ๋„ค โ€” ์ฑ„๋„๋ฅผ 0์œผ๋กœ ๋‘๋ฉด ์ƒ‰์ƒ ๊ฐ’์ด ๋ฌด์—‡์ด๋“  ์„ธ ์ฑ„๋„ ๋ชจ๋‘ \(\text{round}(L\times 255)\)๋กœ ๋™์ผํ•ด์ ธ ์ค‘๋ฆฝ์ ์ธ ํšŒ์ƒ‰์ด ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.

์ตœ์ข… ์—…๋ฐ์ดํŠธ: