프로그래밍

CMYK <-> RGB

Elex 2011. 10. 9. 00:40
반응형

웹 검색으로 획득한 색공간 상호변환 공식을 아래에 간략히 메모해 둠.

실제 소스 구현 및 검증은 다음 기회에.


0.0 <= c, m, y, k, r, g, b <= 1.0


CMYK -> RGB

float c, m, y, k;

r = 1 - ( c * (1 - k) + k);

g = 1 - ( c * (1 - k) + k);

b = 1 - ( c * (1 - k) + k);


RGB -> CMYK

float r, g, b;

k = Math.min(1-r, 1-g, 1-b);

if (k == 1) {

c = m = y = 0; k = 1;

} else {

c = (1 - r - k) / (1 - k);

m = (1 - g - k) / (1 - k);

y = (1 - b - k) / (1 - k);

}


[P.S.]

HSV <-> RGB 변환은 java.awt.Color 클래스에 이미 구현되어 있으므로 생략한다.

RGB는 장치에 의존적이므로 sRGB인지 AdobeRGB인지 등이 우선 정의되어야 한다..고 한다.

RGB와 CMYK를 변환하는 과정의 중간에 CIE Lab으로 변환해주면 좀더 확실하다고 하겠다.

반응형