public float[] fromRGB(float[] rgbvalue) {
if (rgbvalue != null && rgbvalue.length == 3)
{
// First of all we have to convert from RGB to CMY
float c = 1 - rgbvalue[0];
float m = 1 - rgbvalue[1];
float y = 1 - rgbvalue[2];
// Now we have to convert from CMY to CMYK
float varK = 1;
float[] cmyk = new float[4];
if ( c < varK )
{
varK = c;
}
if ( m < varK )
{
varK = m;
}
if ( y < varK )
{
varK = y;
}
if ( varK == 1 )
{
cmyk[0] = cmyk[1] = cmyk[2] = 0;
}
else
{
cmyk[0] = ( c - varK ) / ( 1 - varK );
cmyk[1] = ( m - varK ) / ( 1 - varK );
cmyk[2] = ( y - varK ) / ( 1 - varK );
}
cmyk[3] = varK;
return cmyk;
}
return null;
}
|