Php 十六进制颜色到rgb颜色不准确?
我正在使用php将十六进制颜色值转换为rgb颜色值。但是,当我看这两种颜色时,它们看起来不一样吗 我正在使用rgb值作为文本到图像脚本中的背景色。使用php 你知道如何在rgb中获得精确的颜色吗 代码已包含在下面Php 十六进制颜色到rgb颜色不准确?,php,Php,我正在使用php将十六进制颜色值转换为rgb颜色值。但是,当我看这两种颜色时,它们看起来不一样吗 我正在使用rgb值作为文本到图像脚本中的背景色。使用php 你知道如何在rgb中获得精确的颜色吗 代码已包含在下面 function hex2rgb($hex) { $hex = str_replace("#", "", $hex); if(strlen($hex) == 3) { $r = hexdec(substr($h
function hex2rgb($hex) {
$hex = str_replace("#", "", $hex);
if(strlen($hex) == 3) {
$r = hexdec(substr($hex,0,1).substr($hex,0,1));
$g = hexdec(substr($hex,1,1).substr($hex,1,1));
$b = hexdec(substr($hex,2,1).substr($hex,2,1));
} else {
$r = hexdec(substr($hex,0,2));
$g = hexdec(substr($hex,2,2));
$b = hexdec(substr($hex,4,2));
}
$rgb = array($r, $g, $b);
//return implode(",", $rgb); // returns the rgb values separated by commas
return $rgb; // returns an array with the rgb values
}
问题是颜色不相配
谢谢下面的代码可以将
#dfdfdf
转换为(239)
<?php
function hex2rgb( $colour ) {
if ( $colour[0] == '#' ) {
$colour = substr( $colour, 1 );
}
if ( strlen( $colour ) == 6 ) {
list( $r, $g, $b ) = array( $colour[0] . $colour[1], $colour[2] . $colour[3], $colour[4] . $colour[5] );
} elseif ( strlen( $colour ) == 3 ) {
list( $r, $g, $b ) = array( $colour[0] . $colour[0], $colour[1] . $colour[1], $colour[2] . $colour[2] );
} else {
return false;
}
$r = hexdec( $r );
$g = hexdec( $g );
$b = hexdec( $b );
return array( 'red' => $r, 'green' => $g, 'blue' => $b );
}
?>
如何转换这些颜色?你能给我们看一些代码吗?