태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
2007/04/10 18:27    
색상 형식 간의 변환     스킬북/코드 조각
네이버에서 이동 : http://blog.naver.com/tinywolf/40036383114

각종 색상 모델의 정의
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);


사용자 삽입 이미지

다운로드 :
크리에이티브 커먼즈 라이선스
Creative Commons License

'스킬북 > 코드 조각' 카테고리의 다른 글

윈CE에서 ini파일 사용하기..  (5) 2007/08/02
색상 형식 간의 변환  (0) 2007/04/10
파일 선택 대화상자 띄우기  (0) 2007/04/07
폴더 선택 대화상자 띄우기  (0) 2007/04/07
Posted by |꼬마늑대|

댓글을 달아 주세요

 체크하면 블로그 관리자에게만 내용을 공개합니다.