PHP-将RGB值转换为CMYK百分比

PHP-将RGB值转换为CMYK百分比,php,Php,我使用这个php代码获取RGB值 <?php $im = imagecreatefrompng("img/t4.png"); $rgb = imagecolorat($im, 15, 15); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; ?> 我还需要CMYK百分比 有人能给我一些指导方针吗 谢谢。 <? function hex2

我使用这个php代码获取RGB值

<?php
$im = imagecreatefrompng("img/t4.png");
$rgb = imagecolorat($im, 15, 15);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>

我还需要CMYK百分比

有人能给我一些指导方针吗

谢谢。


<?
function hex2rgb($hex) {
  $color = str_replace('#','',$hex);
  $rgb = array('r' => hexdec(substr($color,0,2)),
               'g' => hexdec(substr($color,2,2)),
               'b' => hexdec(substr($color,4,2)));
  return $rgb;
}

function rgb2cmyk($var1,$g=0,$b=0) {
   if(is_array($var1)) {
      $r = $var1['r'];
      $g = $var1['g'];
      $b = $var1['b'];
   }
   else $r=$var1;
   $cyan    = 255 - $r;
   $magenta = 255 - $g;
   $yellow  = 255 - $b;
   $black   = min($cyan, $magenta, $yellow);
   $cyan    = @(($cyan    - $black) / (255 - $black)) * 255;
   $magenta = @(($magenta - $black) / (255 - $black)) * 255;
   $yellow  = @(($yellow  - $black) / (255 - $black)) * 255;
   return array('c' => $cyan / 255,
                'm' => $magenta / 255,
                'y' => $yellow / 255,
                'k' => $black / 255);
}

$color=rgb2cmyk(hex2rgb('#FF0000')); 
pdf_setcolor($pdf, "both", "cmyk", $color['c'], $color['m'], $color['y'], $color['k']);
?>

看,这是一个很好的答案!关于这一点的细节是,这个函数已经执行了UCR(“颜色移除下”),它用黑色替换相等的颜色份额。这通常会导致更多的“中性”颜色,尤其是灰色色调,通常会以这种方式失去色彩。