public float[] RGBinCMYK(int red, int green, int blue) {
float[] cmyk = new float[4];
cmyk[0] = 255 - red;
cmyk[1] = 255 - green;
cmyk[2] = 255 - blue;
cmyk[3] = ((cmyk[0] <= cmyk[1] && cmyk[0] <= cmyk[2]) ? cmyk[0] : ((cmyk[1] < cmyk[2]) ? cmyk[1] : cmyk[2]));
for (int i = cmyk.length - 2; i > -1; i--) {
cmyk[i] = ((cmyk[i] - cmyk[3]) / (255 - cmyk[3])) * 255;
}
return cmyk;
}
public int[] CMYKinRGB(float cyan, float magenta, float yellow, float key) {
int[] rgb = new int[3];
float[] cmyk = {cyan, magenta, yellow, key};
float temp = 0;
for (int i = rgb.length - 1; i > -1; i--) {
temp = (cmyk[i] / 255) * (255 - cmyk[3]) + cmyk[3];
rgb[i] = (int)(float)(255 - ((255 < temp) ? 255 : temp));
}
return rgb;
}