答案 0 :(得分:9)
答案 1 :(得分:0)
我刚遇到这个问题是因为我在寻找转换脚本。但是,马克·贝克(Mark Baker)回答中的rgb2cmyk函数似乎无法计算出正确的值。我将结果与多个在线计算器进行了比较,为了获得正确的值,我不得不像下面这样修改函数:
function rgb2cmyk($var1,$g=0,$b=0) {
if (is_array($var1)) {
$r = $var1['r'];
$g = $var1['g'];
$b = $var1['b'];
} else {
$r = $var1;
}
$cyan = 1 - $r/255;
$magenta = 1 - $g/255;
$yellow = 1 - $b/255;
$black = min($cyan, $magenta, $yellow);
$cyan = @round(($cyan - $black) / (1 - $black) * 100);
$magenta = @round(($magenta - $black) / (1 - $black) * 100);
$yellow = @round(($yellow - $black) / (1 - $black) * 100);
$black = round($black * 100);
return array(
'c' => $cyan,
'm' => $magenta,
'y' => $yellow,
'k' => $black,
);
}
现在,我完全不理解我在这里所做的事情,但是它似乎输出了正确的值(与所有其他在线计算器相比)。