时间:2010-07-26 09:24:35

标签: php

2 个答案:

答案 0 :(得分:9)

答案 1 :(得分:0)

我刚遇到这个问题是因为我在寻找转换脚本。但是,马克·贝克(Mark Ba​​ker)回答中的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,
    );
}

现在,我完全不理解我在这里所做的事情,但是它似乎输出了正确的值(与所有其他在线计算器相比)。