๋ชฉ์ฐจ
โ[javascript] ์๋ฐ์คํฌ๋ฆฝํธ๋ก rgb ์์ํ ์ถ๋ ฅํ๊ธฐ html rgb์์ ์ฝ๋ํ ๋ง๋ค๊ธฐ
RGB์์ ์ฝ๋๋ rgb(255,255,255)๋ # FF FF FF ์ ๊ฐ์ด ํํ ํํ๋๋๋ฐ, ์ฌ์ค์ ์ปดํจํฐ๋ 2์ง์๋ง ์ดํดํ๋ค.
FF๋ 255๋ ์ฌ๋์ด ๋ณด๊ธฐ ํธํ๋ผ๊ณ ํํํ ํ์์ด๋ค. ์๋ฌดํผ ์ปดํจํฐ๋ ์ด ์ฝ๋๋ฅผ ์ฅํ [Octet]๋จ์๋ก ๋์ด์ ์ดํดํ๋ค.
์ฅํ ์ด๋?
์ฅํ ์ด๋ 8๊ฐ์ ํ ๋ฌถ์์ด๋ค. ๋ฌ๋ฆฌํํํ์๋ฉด ๋ฐ์ดํธ์ฏค ๋๊ฒ ์ง๋ง ์กฐ๊ธ์ ๋์์ค๊ฐ ๋ค๋ฅธ ๊ฐ๋ ์ด๋ค.
์ฒซ๋ฒ์งธ ์ฅํ
์ R, ์ฆ RED๋ฅผ ๋ปํ๊ณ ,
๋๋ฒ์งธ ์ฅํ
์ G, ์ฆ Green์ ๋ปํ๊ณ
์ธ๋ฒ์งธ ์ฅํ
์ B, ์ฆ Blue๋ฅผ ๋ปํ๋ค.
์ด ๊ฐ ์ฅํ
์์ ์ด ์ธ๊ฐ์ง ์์์ ๋น์ ์ ๋๋ฅผ ํํํ๋ค.
0์ด๋ฉด ๋ถ์ด ๊บผ์ ธ์์ผ๋ ์ด๋์ด๊ฒ์ด ๋๊ณ , ๋ชจ๋ 1๋ก ์ฑ์์ง๋ฉด ๊ทธ๋งํผ ๋ฐ์๊ฒ ๋๋ค.
๋ฐ๋ผ์ #000000์ ๊ฒ์์, #FFFFFF๋ ํฐ์์ด ๋๋ค. (๋ฌผ๊ฐ๊ณผ ๋ฐ๋๋ค)
์๋ฌดํผ ์ด๋ฌํ ๊ฐ๋ ์ผ๋ก ์ฐ๋ฆฌ๋ ๊ฐ ์ฅํ ์ ๋น์ ์ ๋๋ฅผ ์กฐ์ ํด ์ค์ผ๋ก์จ ์ธ์์ ๋ชจ๋ ์์ ๊ฐ๊น์ด ์์ ํํํ๊ฒ ๋๋ค.
๊ทธ๋๋ดค์ 256๊ฐ์ง๋ผ๊ณ ์ฐ์ต๊ฒ ๋ณผ์ง ๋ชฐ๋ผ๋ ์ด๊ฒ ๋ง๋ง์น ์๋ค.
256๊ฐ์ง 3๊ฐ์ง์ ๊ฒฝ์ฐ์ ์๋ 256^3=256*256*256=16,777,216๊ฐ์ง์ด๋ค.
์ด๊ฑธ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ชจ๋ ํํํด๋ด๊ธฐ์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฐ์ฐ๋ฒ์๋ฅผ ์ด๊ณผํ๋ค.
๊ทธ๋ฌ๋ ์ผ๋จ ์๋ฆฌ๋ฅผ ํ์ ํ๊ณ ์ ํ๋ฐฑ ์์ํ๋ง ๋จผ์ ๋ง๋ค์ด ๋ณด์.
<script>
var r,g,b;
var colorT;
for(var k=0;k<256;k=k+4)
{
r=k.toString(16);
if(r.length < 2) r = "0" + r;
g=k.toString(16);
if(g.length < 2) g = "0" + g;
b=k.toString(16);
if(b.length < 2) b = "0" + b;
colorT=r+g+b;
document.write("<div style=\"float:left; font-weight:bold;
text-align:center; width:120px;
height:20px; background-color:#"+colorT+";\">
");
document.write("#"+colorT);
document.write("</div>
");
}
</script>
<div style="TEXT-ALIGN: center; WIDTH: 120px; FLOAT: left; HEIGHT: 20px; FONT-WEIGHT: bold">#ffffff</div>
์ด ์์ค์์์ ๊ฐ์ฅ ํต์ฌ์
r=k.toString(16); if(r.length < 2) r = "0" + r;
์์ ๋์ค์ด๋ค. r์ด๋ผ๋ ๋ณ์์ k์ญ์ง์ ๊ฐ์ 16์ง์๋ก ๋ณํ์์ผ์ ๋์ ํ๋ผ๋ ๋ป์ด๋ค.
๊ทธ๋ ๊ฒ g์ b๋ณ์๋ ์ป์ด ๋ด์ด ๋ฌธ์์ด๋ก์จ ํฉ์ณ์ rgb์์ญ์ฝ๋๋ฅผ ์ป์ด ๋ด๋ ๊ฒ์ด ๊ฐ์ฅ ํต์ฌ์ด๋ค.
์ฐ๋ฆฌ๋์ ์๊ทผํ ์ข์๋ฏ ํ์ง๋ง ์ฌ์ค ๊ทธ๋ค์ง ์ข์ง๋ ๋ชปํ๋ค.
256๋จ๊ณ์ ์์์ ๋ชจ๋ ์ถ๋ ฅํด์ ๋ด๋ด์ผ ๊ทธ๋ค์ง ๋จ๊ณ์ฑ์ด ๋๊ปด์ง์ง ๋ชปํ๊ณ ๋ง์น ๊ทธ๋ผ๋ฐ์ด์ ์ฒ๋ผ ๋ณด์ธ๋ค.
๊ทธ๋์ ์ผ๋ถ๋ฌ +4์ฉ ์ฆ๊ฐํ๋๋ก ํด๋ดค๋ค. +4์ฉ ์ฆ๊ฐํ๋ฉด ๋ง์ง๋ง์ FFFFF๋ฅผ ํํํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ html์ฝ๋๋ก ๋ง์ง๋ง ํฐ์์ ์ฅ์ํด์ฃผ์๋ค.
๋์น ์ฑ๊ฒ ์ง๋ง, R,G,B๊ฐ ๊ณ ๋ฃจ ์ฆ๊ฐํด์ผ ๋ฌด์ฑ์ ๊ณ์ด์ ์์ํ๊ฐ ๋ง๋ค์ด์ง๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ for๋ฌธ์ ํ๋๋ง ์จ๋ ๋๋ค.
ํ์ง๋ง ์ ์ฒด ์นผ๋ผ๋ฅผ ํํํ๋ ค๋ฉด ์ธ๊ฐ์ ์ฅํ ์ด ๋ชจ๋ ๊ฐ๊ฐ ๋ฐ๋ก ํํ๋์ด์ผ ํ๋ค.
๊ทธ๋ฐ rgb์์ํ๋ฅผ ๋ง๋ค๋ ค๋ฉด 3์ค for๋ฌธ์ ์ฌ์ฉํด์ผ ํ๋ค.
์ฒ์์ ๊ณ์ฐ์ ํด๋ณด์์ง๋ง, 256*256*256์ rgb ์์ํ ์ฐ์ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก๋ ๋ฌด๋ฆฌ๋ค.
๋ฌผ๋ก ๋ฐฉ๋ฒ์ด ์์ฃผ ์๋ ๊ฒ๋ ์๋์ง๋ง...์ด๋ฐ rgb ์์ํ๋ฅผ ๋ง๋ค์ด ๋ด๊ธฐ๊ฐ ๋ฌด๋ฆฌ๋ค.
๋ง๋ค์ด๋ด๋ดค์...์คํฌ๋กค ํ๋ค๋ณด๋ฉด ํ๋ฃจํด๊ฐ ์ ๋ฌผ์ง ๋ชจ๋ฅธ๋ค.
<script>
var r,g,b;
var colorT;
for(var i=0;i<256;i=i++)
{
for(var j=0;j<256;j=j++)
{
for(var k=0;k<256;k=k++)
{
r=i.toString(16);
if(r.length < 2) r = "0" + r;
g=j.toString(16);
if(g.length < 2) g = "0" + g;
b=k.toString(16);
if(b.length < 2) b = "0" + b;
colorT=r+g+b;
document.write("<div style=\"float:left; font-weight:bold;
text-align:center; width:120px;
height:20px; background-color:#"+colorT+";\">
");
document.write("#"+colorT);
document.write("</div>
");
}
}
}
</script>
์์ ๊ฐ์ด ์ฝ๋ฉํด์ ๋๋ ค๋ณด๋ฉด ์ ๋งํ๋ฉด ์๋ฌ๊ฐ ๋ฐ ๊ฒ์ด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ก๋ ๋ฒ๊ฒ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฐ for๋ฌธ์์ ๋๋ต +1์ฉ ์ฆ๊ฐ์ํฌ ๊ฒ์ด ์๋๋ผ +25์ ๋์ฉ์ ํด์ค์ผ ๊ฒจ์ฐ ์ถ๋ ฅ๋ฌผ์ด ๋ง๋ค์ด์ง๋ค.
๊ทธ๊ฒ๋ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ฐธ์์ค๋งํผ์ ์๊ฐ์ ์ถฉ๋ถํ ๋ค ์ฐ๊ณ ๋ง์ด๋ค.
๊ทธ๋ ๋ค๊ณ ์ผ๋ฅ ์ ์ผ๋ก +25๋ฅผ ํ๋ฉด ๊ต์ฅํ ๋ํดํ ๊ทธ๋ฆผ์ ๋ณด๊ฒ ๋ ์๋ ์๋ค.
์ ์ ํ ์กฐ์ ์ ํ๋ฉด ์์ ์์ํ๋ฅผ ์ป์ ์ ์๋ค.
๋ค์์ ์๊ฐ์ด ๋๋ฉด
์๋ฐ ์๋ํฐ์์ ๋์ด๋ ํ๋ ํธ๋ฅผ ๊ทธ๋ฆฌ๋ ๋ฒ์ ์ค๋ช ํ ์์ ^^;
<div style="WIDTH: 700px; HEIGHT: auto">
<script>
var r,g,b;
var colorT;
for(var k=0;k<256;k=k+4)
{
r=k.toString(16);
if(r.length < 2) r = "0" + r;
g=k.toString(16);
if(g.length < 2) g = "0" + g;
b=k.toString(16);
if(b.length < 2) b = "0" + b;
colorT=r+g+b;
document.write("<div style=\"float:left; font-weight:bold;
text-align:center; width:120px;
height:20px; background-color:#"+colorT+";\">
");
document.write("#"+colorT);
document.write("</div>
");
}
</script>
<div style="TEXT-ALIGN: center; WIDTH: 120px; FLOAT: left; HEIGHT: 20px; FONT-WEIGHT: bold">#ffffff</div>
<script>
var r,g,b;
var colorT;
for(var i=0;i<256;i=i+25)
{
for(var j=0;j<256;j=j+16)
{
for(var k=0;k<256;k=k+18)
{
r=i.toString(16);
if(r.length < 2) r = "0" + r;
g=j.toString(16);
if(g.length < 2) g = "0" + g;
b=k.toString(16);
if(b.length < 2) b = "0" + b;
colorT=r+g+b;
document.write("<div style=\"float:left; font-weight:bold;
text-align:center; width:120px;
height:20px; background-color:#"+colorT+";\">
");
document.write("#"+colorT);
document.write("</div>
");
}
}
}
</script>
<script>
var r,g,b;
var colorT;
for(var i=5;i<256;i=i+25)
{
for(var j=0;j<256;j=j+16)
{
for(var k=0;k<256;k=k+18)
{
r=i.toString(16);
if(r.length < 2) r = "0" + r;
g=j.toString(16);
if(g.length < 2) g = "0" + g;
b=k.toString(16);
if(b.length < 2) b = "0" + b;
colorT=r+g+b;
document.write("<div style=\"float:left; font-weight:bold;
text-align:center; width:120px;
height:20px; background-color:#"+colorT+";\">
");
document.write("#"+colorT);
document.write("</div>
");
}
}
}
</script>
</div>
๋๊ธ