RGB to HEX ๋ณํ๊ธฐ๋?
์ด ๋๊ตฌ๋ RGB ์์๊ฐ์ HEX(16์ง์) ์์ ์ฝ๋๋ก ๋ฐ๊ฟ ์ค๋๋ค. RGB๋ ๋นจ๊ฐ(R)ยท์ด๋ก(G)ยทํ๋(B) ๋น์ ์ธ๊ธฐ๋ฅผ ๊ฐ๊ฐ 0๋ถํฐ 255๊น์ง์ ์ซ์๋ก ๋ํ๋ธ ๊ฐ์ด๊ณ , HEX๋ ์น ๋์์ธ, CSS, HTML, ๊ทธ๋ํฝ ๋์์ธ ํ๋ก๊ทธ๋จ์์ ํํ ์ฐ์ด๋ #RRGGBB ํ์์ ์์ ํ๊ธฐ๋ฒ์
๋๋ค. ๋ ํ๊ธฐ๋ฒ์ ์์ ํ ๊ฐ์ ์์ ๊ฐ๋ฆฌํค๋ฉฐ, HEX๋ ๋์ผํ ์ธ ๋ฐ์ดํธ ๊ฐ์ ๋ ์งง๊ณ ๊ฐ๊ฒฐํ๊ฒ ์ ๋ ๋ฐฉ์์ผ ๋ฟ์
๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
๋นจ๊ฐ(Red), ์ด๋ก(Green), ํ๋(Blue) ์นธ์ ๊ฐ๊ฐ 0๋ถํฐ 255 ์ฌ์ด์ ๊ฐ์ ์ ๋ ฅํ ๋ค ๋ณํ ๋ฒํผ์ ๋๋ฅด์ธ์. ๋ณํ๊ธฐ๋ HEX ์ฝ๋์ ํจ๊ป ๊ฒฐ๊ณผ๋ฅผ ๋์ผ๋ก ํ์ธํ ์ ์๋ ์ค์๊ฐ ์์ ๊ฒฌ๋ณธ, ๊ทธ๋ฆฌ๊ณ ๊ฐ ์ฑ๋์ 10์ง์์ 16์ง์๋ก ํจ๊ป ๋ณด์ฌ ์ฃผ๋ ์์ธ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค. 0~255 ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฐ์ ์๋์ผ๋ก ๋ฒ์ ์์ผ๋ก ๋ง์ถฐ์ง๊ณ , ์์์ ๊ฐ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ก ๋ฐ์ฌ๋ฆผ๋ฉ๋๋ค.
๋ณํ ๊ณต์ ์์๋ณด๊ธฐ
๊ฐ ์ฑ๋์ 16์ง์๋ก ๋ณํ๋ฉ๋๋ค. 0๋ถํฐ 255๊น์ง์ ํ ๋ฐ์ดํธ ๊ฐ์ ์ธ์ ๋ ์ ํํ ๋ ์๋ฆฌ 16์ง์(00~FF)๋ก ํํ๋ฉ๋๋ค. ์ด๋ค ๊ฐ \(v\)๋ฅผ ๋ณํํ๋ ค๋ฉด ์์๋ฆฌ๋ floor(v / 16), ๋ท์๋ฆฌ๋ v mod 16์ผ๋ก ๊ตฌํ๊ณ , 10~15๋ A~F๋ก ๋ฐ๊ฟ ์ค๋๋ค. ๊ฒฐ๊ณผ๊ฐ ํ ์๋ฆฌ๋ฉด ์์ 0์ ๋ถ์ฌ ๋ชจ๋ ์ฑ๋์ด ๋ ๊ธ์๊ฐ ๋๋๋ก ํฉ๋๋ค. ์ด๋ ๊ฒ ๋ง๋ ๋ ์๋ฆฌ์ง๋ฆฌ ๊ฐ ์ธ ๊ฐ๋ฅผ # ๋ค์ ์ด์ด ๋ถ์ด๋ฉด ์์ฑ์
๋๋ค.
$$\text{Hex} = \text{\#} \; \overline{\text{Red}}_{16} \, \overline{\text{Green}}_{16} \, \overline{\text{Blue}}_{16}$$
์์ ๋ก ๋ฐ๋ผ ํ๊ธฐ
RGB(255, 165, 0)์ ์๋ก ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ๋นจ๊ฐ \(255 = \text{FF}\), ์ด๋ก \(165 = (165 \div 16 = 10 \text{ ๋๋จธ์ง } 5) \to \text{A5}\), ํ๋ \(0 = \text{00}\). ์ด๋ฅผ ์ด์ด ๋ถ์ด๋ฉด #FFA500์ด ๋๋๋ฐ, ๋ฐ๋ก ์น์์ ํํ ์ฐ์ด๋ ๋ํ ์ "์ฃผํฉ(orange)"์ ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ ์ด๋ค HEX ์ฝ๋๋ 3์๋ฆฌ๋ง ์๋์? #FFF ๊ฐ์ ์ถ์ฝ ํ๊ธฐ๋ #RRGGBB์์ ๊ฐ ์์ด ๋๊ฐ์ด ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ๋ฅผ ์ค์ฌ ์ด ๊ฒ์ ๋๋ค(์ฆ #FFF = #FFFFFF). ์ด ๋๊ตฌ๋ ํญ์ 6์๋ฆฌ ์ ์ฒด ํ์์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
FF๋ ๋ฌด์จ ๋ป์ธ๊ฐ์? FF๋ 16์ง์๋ก 255๋ฅผ ๋ปํ๋ฉฐ, ํ ์ฑ๋์ด ๊ฐ์ง ์ ์๋ ์ต๋ ์ธ๊ธฐ๋ฅผ ๋ํ๋ ๋๋ค.
255๋ณด๋ค ํฐ ๊ฐ์ ์ ๋ ฅํ ์ ์๋์? ๊ฐ ์ฑ๋์ 0~255 ๋ฒ์๋ง ๊ฐ๋ฅํ๋ฏ๋ก, ๊ทธ๋ณด๋ค ํฐ ๊ฐ์ 255๋ก(์์๋ 0์ผ๋ก) ์๋ ์กฐ์ ๋ฉ๋๋ค.