안녕하세요. heredity입니다.
일단 질문하신 색상표는 구할 수가 없었습니다. ^^;
아래 TColorDialog를 이용한 프로그램으로 필요한 색상을 찾아
보시기 바랍니다.
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
struct {
PCHAR pchName;
TColor clColor;
} Color[] = {
{"Aqua", clAqua},
{"Black", clBlack},
{"Blue", clBlue},
{"DkGray", clDkGray},
{"Fuchsia",clFuchsia},
{"Gray", clGray},
{"Green", clGreen},
{"Lime", clLime},
{"LtGray", clLtGray},
{"Maroon", clMaroon},
{"Navy", clNavy},
{"Olive", clOlive},
{"Purple", clPurple},
{"Red", clRed},
{"Silver", clSilver},
{"Teal", clTeal},
{"White", clWhite},
{"Yellow", clYellow}
};
AnsiString asHexa;
Memo1->Lines->Clear();
for( int nI = 0; nI < sizeof(Color) / sizeof(Color[0]); nI++ ) {
asHexa.sprintf( "%10s = %08x", Color[nI].pchName, (int) Color[nI].clColor );
Memo1->Lines->Add( asHexa );
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if( ColorDialog1->Execute() ) {
AnsiString asStr;
asStr.sprintf( "선택된 색상 = %08lx", ColorDialog1->Color );
Memo1->Lines->Add( asStr );
}
}
//---------------------------------------------------------------------------
// << 실행 결과 >>
//---------------------------------------------------------------------------
// Aqua = 00ffff00
// Black = 00000000
// Blue = 00ff0000
// DkGray = 00808080
// Fuchsia = 00ff00ff
// Gray = 00808080
// Green = 00008000
// Lime = 0000ff00
// LtGray = 00c0c0c0
// Maroon = 00000080
// Navy = 00800000
// Olive = 00008080
// Purple = 00800080
// Red = 000000ff
// Silver = 00c0c0c0
// Teal = 00808000
// White = 00ffffff
// Yellow = 0000ffff
참고로 TColor에 대해 설명 드리면
TColor은 4Byte로 구성되어 있으며 최상위 1Byte는 Palette 정보를
하위의 3 Byte는 RGB(Blue, Green, Red)색상 즉, 빛의 삼원색을 나타냅니다.
0x00FF0000 = pure Blue
0x0000FF00 = pure Green (위의 실행 결과와 비교해 보니 이 색이 Lime 인가 봅니다 ... -_-;;)
x0000000FF = pure Red
아래는 삼원색 등에 대한 정보입니다(다 아시겠지만.... ^^;)
- 삼원색 (
http://100.naver.com/100.php?id=86544)
서로 독립된 3가지 색의 빛을 적당한 비율로 배합하면 어떠한 색도 만들 수 있다는
경험 법칙에 따른 3가지 색.
보통 빨강·녹색·청색을 색광(色光)의 3원색이라고 하고 이것을 혼합하는 것을
가산혼합(加算混合)이라고 한다. 또 모든 색에 대해서 서로 보색 관계에 있는
세 종류의 색, 즉 노랑·빨강·파랑을 색료(色料)의 3원색이라고 하고 이것들을
섞는 것을 감산혼합이라고 한다.
- 가산혼합 (
http://100.naver.com/100.php?id=1116
빛을 가하여 색을 혼합할 때, 혼합한 색이 원래의 색보다 밝아지는(명도가 높아지는) 혼합.
가법혼색(加法混色) 또는 가색혼합(加色混合)이라고도 하며, 감산혼합(減算混合)에 대응되는
말이다. 가령, 적색광과 녹색광을 스크린에 투영하여 혼합하면, 본래의 두 빛보다 밝은
황색광이 된다. 또, 녹색광과 청자색광을 섞으면 그것들보다 밝은 시안색(하늘색) 빛이 되고,
청자색광과 적색광을 섞으면, 그것들보다 더 밝은 마젠타색(자홍색) 빛이 된다. 이것은 눈에
들어오는 빛의 양이 혼합에 의해 증가하기 때문이다.
가산혼합에서는 적·녹·청의 3색을 여러 강도로 섞으면 어떤 색이라도 얻을 수 있다. 따라서
이 3색을 가산혼합의 3원색이라 한다. 이 원리는 컬러 텔레비전을 비롯하여 조명 등에 이용되고
있다. 그리고 가산혼합에서의 보색(補色)이란 2색을 섞었을 때 백색이 되는 경우를 말한다.
- 감산혼법 (
http://100.naver.com/100.php?id=4317)
혼합색이 원래의 색보다 명도(明度)가 낮아지도록 색을 혼합하는 방법.
가산혼합(加算混合)의 반대말로 감법혼색(減法混色)·감색혼합(減色混合)이라고도 한다.
예를 들면, 마젠타(자홍색)와 노랑의 2개의 색필터를 겹치면 원래의 마젠타나 노랑보다 어두운
빨강이 된다. 이것은 양쪽색 필터를 모두 통과하는 파장부분만 투과하고, 양쪽을 모두 통과
하지 않는 파장부분은 불투명해지기 때문이다.
감산혼합에서는 마젠타·노랑·시안(하늘색)을 여러 강도로 섞으면 어떤 색이라도 만들 수
있다. 따라서 이 3색을 감산혼합의 3원색이라고 한다. 이 원리는 컬러사진이나 수채화 등에
이용된다. 이 혼합에서의 보색(補色)은 회색 또는 흑색이 된다.
행복하세요.
-------------------------------------------------
초보자 님이 쓰신 글 :
: 다른 색상값은 알 수 없나요?
:
: -0x7fffffff-1 ~ 0x7fffffff 사이의 값이라고 하는데
:
: 각 값들이 어떤 색인지 몰라서요..
:
: 색상표 자료를 얻고 싶습니다..
: