给定一个颜色值,怎么把它转换成一个深一点的值?
程序员文章站
2022-06-04 18:31:19
...
a = "#333333"
需要这个函数:把a的色彩变深一点,比如a="#222222"
需要这个函数:把a的色彩变深一点,比如a="#222222"
回复讨论(解决方案)
$a = "#333333";$rgb = unpack('C*', pack('H*', substr($a, 1)));$hsb = call_user_func_array('rgb2hsb', $rgb);$hsb[2] *= 0.67;$rgb = call_user_func_array('hsb2rgb', $hsb);echo '#' . join('', array_map('dechex', $rgb));function rgb2hsb($rgbR, $rgbG, $rgbB) { $rgbR &= 255; $rgbG &= 255; $rgbB &= 255; $rgb = array($rgbR, $rgbG, $rgbB ); sort($rgb); $max = $rgb[2]; $min = $rgb[0]; $hsbB = $max / 255.0; $hsbS = $max == 0 ? 0 : ($max - $min) / $max; $hsbH = 0; if ($max == $rgbR && $rgbG >= $rgbB) { $hsbH = ($rgbG - $rgbB) * 60 / (($m = $max - $min) ? $m : 1); } else if ($max == $rgbR && $rgbG #222222感谢!
上一篇: 学习php设计模式 php实现抽象工厂模式_php技巧
下一篇: php实现复制移动文件的方法,