프로그래밍
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으로 변환해주면 좀더 확실하다고 하겠다.
반응형