[CS5 - JS] Convert InDesign colors to Hex
Hi,
I assembled the following functions in order to convert InDesign colors to theyr hex value.
I tested it with some colors but RGB conversion is not working as expected.
function colorToHex(color, tint){
switch(color.space){
case ColorSpace.CMYK:
return cmykToHex((color.colorValue[0] * tint) / 100, (color.colorValue[1] * tint) / 100, (color.colorValue[2] * tint) / 100, (color.colorValue[3] * tint) / 100);
break;
case ColorSpace.RGB:
return cp_RgbToHex((color.colorValue[0] * tint) / 100, (color.colorValue[1] * tint) / 100, (color.colorValue[2] * tint) / 100);
break;
default:
return "";
break;
}
}
function cmykToHex(c, m, y, k){
c = c/100;
m = m/100;
y = y/100;
k = k/100;
var R = (1 - (c * (1 - k) + k)) * 255;
var G = (1 - (m * (1 - k) + k)) * 255;
var B = (1 - (y * (1 - k) + k)) * 255;
return rgbToHex(R, G, B);
}
function rgbToHex(R, G, B){
return "#" + nToHex(R) + nToHex(G) + nToHex(B);
}
function nToHex(N){
if (N == 0 || isNaN(N)){
return "00";
}
N = Math.max(0,N);
N = Math.min(N,255);
N = Math.round(N);
return "0123456789ABCDEF".charAt((N-N%16)/16) + "0123456789ABCDEF".charAt(N%16);
}
Do you see something wrong?
Thanks!
