如何在php中将十六进制颜色值转换为CMYK等效值?
我想写一个函数来做这件事。但是我不知道如何将十六进制转换为CMYK
eg:
<?php
hex2CMYK('#000000'); //result: array('0.0','0.0','0.0','0.0');
?>
发布于 2010-07-26 17:41:47
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));
$magenta = @(($magenta - $black) / (255 - $black));
$yellow = @(($yellow - $black) / (255 - $black));
return array(
'c' => $cyan,
'm' => $magenta,
'y' => $yellow,
'k' => $black,
);
}
$color=rgb2cmyk(hex2rgb('#FF0000'));
https://stackoverflow.com/questions/3333585
复制相似问题