각종 색상 모델의 정의
RGB - http://en.wikipedia.org/wiki/RGB
CMYK - http://en.wikipedia.org/wiki/CMYK_color_model
HSV - http://en.wikipedia.org/wiki/HSV_color_space
HLS - http://en.wikipedia.org/wiki/HLS_color_space
YUV - http://en.wikipedia.org/wiki/YUV
수식 참고 : http://www.brucelindbloom.com/index.html?Equations.html
코드 출처 : http://www.easyrgb.com/math.html
위의 출처에 제시된 코드를 함수로 만들었으며 몇가지는 최적화 시켰습니다.
최적화 과정에서 실수가 있을지도... ㅡㅅㅡ;;
오류가 발견되면 알려주시기 바랍니다.
헤더 파일만 추가시켜 사용하시면 되고 다음과 같은 변환 함수들이 제공됩니다.
라이센스는 공개입니다. 자유롭게 사용해 주세요~
//
XYZ -> RGB
void
color_XYZ_to_RGB(double iX, double iY, double iZ, unsigned char&
oR, unsigned char&
oG, unsigned char&
oB);
//
RGB -> XYZ
void
color_RGB_to_XYZ(unsigned char iR, unsigned
char iG,
unsigned char
iB, double& oX,
double& oY, double&
oZ);
//
XYZ -> Yxy
void
color_XYZ_to_Yxy(double iX, double iY, double iZ, double& oY,
double& ox, double&
oy);
//
Yxy -> XYZ
void
color_Yxy_to_XYZ(double iY, double ix, double iy, double& oX,
double& oY, double&
oZ);
//
XYZ -> Hunter-Lab
void
color_XYZ_to_HunterLab(double iX, double iY, double iZ, double& oL,
double& oa, double&
ob);
//
Hunter-Lab -> XYZ
void
color_HunterLab_to_XYZ(double iL, double ia, double ib, double& oX,
double& oY, double&
oZ);
//
XYZ -> CIE-L*ab
void
color_XYZ_to_CIELab(double iX, double iY, double iZ, double& oL,
double& oa, double&
ob);
//
CIE-L*ab -> XYZ
void
color_CIELab_to_XYZ(double iL, double ia, double ib, double& oX,
double& oY, double&
oZ);
//
CIE-L*ab -> CIE-L*CH'
void
color_CIELab_to_CIELCH(double iL, double ia, double ib, double& oL,
double& oC, double&
oH);
//
CIE-L*CH' -> CIE-L*ab
void
color_CIELCH_to_CIELab(double iL, double iC, double iH, double& oL,
double& oa, double&
ob);
//
XYZ -> CIE-L*uv
void
color_XYZ_to_CIELuv(double iX, double iY, double iZ, double& oL,
double& ou, double&
ov);
//
CIE-L*uv -> XYZ
void
color_CIELuv_to_XYZ(double iL, double iu, double iv, double& oX,
double& oY, double&
oZ);
//
RGB -> HSL
void
color_RGB_to_HSL(unsigned char iR, unsigned
char iG,
unsigned char
iB, double& oH,
double& oS, double&
oL);
//
HSL -> RGB
void
color_HSL_to_RGB(double iH, double iS, double iL, unsigned char&
oR, unsigned char&
oG, unsigned char&
oB);
//
RGB -> HSV
void
color_RGB_to_HSV(unsigned char iR, unsigned
char iG,
unsigned char
iB, double& oH,
double& oS, double&
oV);
//
HSV -> RGB
void
color_HSV_to_RGB(double iH, double iS, double iV, unsigned char&
oR, unsigned char&
oG, unsigned char&
oB);
//
RGB -> CMY
void
color_RGB_to_CMY(unsigned char iR, unsigned
char iG,
unsigned char
iB, double& oC,
double& oM, double&
oY);
//
CMY -> RGB
void
color_CMY_to_RGB(double iC, double iM, double iY, unsigned char&
oR, unsigned char&
oG, unsigned char&
oB);
//
CMY -> CMYK
void
color_CMY_to_CMYK(double iC, double iM, double iY, double& oC,
double& oM, double&
oY, double& oK);
//
CMYK -> CMY
void color_CMYK_to_CMY(double iC, double iM, double iY, double iK, double& oC, double& oM, double& oY);
'스킬북 > 코드 조각' 카테고리의 다른 글
| 윈CE에서 ini파일 사용하기.. (5) | 2007/08/02 |
|---|---|
| 색상 형식 간의 변환 (0) | 2007/04/10 |
| 파일 선택 대화상자 띄우기 (0) | 2007/04/07 |
| 폴더 선택 대화상자 띄우기 (0) | 2007/04/07 |


conv_col.h
|꼬마늑대|


댓글을 달아 주세요