首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP:十六进制到CMYK

PHP:十六进制到CMYK
EN

Stack Overflow用户
提问于 2010-07-26 17:24:35
回答 1查看 4.4K关注 0票数 3

如何在php中将十六进制颜色值转换为CMYK等效值?

我想写一个函数来做这件事。但是我不知道如何将十六进制转换为CMYK

代码语言:javascript
复制
eg: 
<?php

hex2CMYK('#000000'); //result: array('0.0','0.0','0.0','0.0');

?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-26 17:41:47

代码语言:javascript
复制
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'));
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3333585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档