我使用此代码段在javascript中将RGB颜色转换为CMYK:
function RgbToCmyk(R,G,B)
{
if ((R == 0) && (G == 0) && (B == 0)) {
return [0, 0, 0, 1];
} else {
var calcR = 1 - (R / 255),
calcG = 1 - (G / 255),
calcB = 1 - (B / 255);
var K = Math.min(calcR, Math.min(calcG, calcB)),
C = (calcR - K) / (1 - K),
M = (calcG - K) / (1 - K),
Y = (calcB - K) / (1 - K);
return [C, M, Y, K];
}
}
现在我想将返回的CMYK转换为CMYK百分比。
例如此RGB颜色(171,215,170)转换为此百分比CMYK(34%,1%,42%,0)
(我用photoshop进行转换)
编辑:此代码段的返回值介于0-1之间。我发现我必须更改此片段以返回介于0-255之间的值,然后将值除以2.55以给出cmyk颜色的值作为百分比。现在如何更改此代码以返回0-255范围内的值
答案 0 :(得分:0)
CMYK和RGB是两种不同的颜色模型(分别是减色和附加模型),因此您需要一个算法来转换值(以获得最接近另一个系统的每个系统)
使用类似的算法,您应该能够来回转换值,然后获得您只需要进行简单计算的百分比,例如此函数将返回给定系统的百分比值:
function get_percentage(value, model){
if (model == "CMYK") return value; // CMYK values are 0-100 (if 0-1 just * 100)
if (model == "RGB" ) return (value/ 255)* 100;
}
// a call with the value of 66 in RGB model:
document.write( get_percentage( 66, "RGB"));
希望它有所帮助,