Вам просто нужна функция, которая преобразует значение CMYK в RGB? Или вы хотите конвертировать целое изображение, которое является CMYK?
Для первой проблемы, как псевдокод rgb2cmyk:
int r,g,b,c,m,y,k;
int computedC,computedM,computedY;
int minCMY;
if(r==0 && g==0 && b==0) return {0,0,0,1}
computedC = 1 - (r/255);
computedM = 1 - (g/255);
computedY = 1 - (b/255);
minCMY = Math.min(computedC,Math.min(computedM,computedY));
computedC = (computedC - minCMY) / (1 - minCMY) ;
computedM = (computedM - minCMY) / (1 - minCMY) ;
computedY = (computedY - minCMY) / (1 - minCMY) ;
return {computedC,computedM,computedY,minCMY};
А для обратного, просто посчитай это назад:)
Для проблемы нет. 2:
Это проще, потому что есть специальный инструмент под названием ColorSpace:
Как преобразовать изображения между CMYK и RGB в ColdFusion (Java)?
Надеюсь, это поможет: 3