in my code i have $color = rgb(255, 255, 255);
i want to convert this into hex color code.Out put like $color = '#ffffff';
asked Oct 6, 2015 at 5:51 2 A simple sprintf will do. $color = sprintf("#%02x%02x%02x", 13, 0, 255); // #0d00ff
To break down the format: # - the literal character #% - start of conversion specification0 - character to be used for padding2 - minimum number of characters the conversion should result in, padded with the
above as necessaryx - the argument is treated as an integer and presented as a hexadecimal number with lowercase letters%02x%02x - the above four repeated twice more
answered Oct 6, 2015 at 19:06 user3942918user3942918 25.1k12 gold badges54 silver badges67 bronze badges 0 You can use following function function fromRGB($R, $G, $B)
{
$R = dechex($R);
if (strlen($R)<2)
$R = '0'.$R;
$G = dechex($G);
if (strlen($G)<2)
$G = '0'.$G;
$B = dechex($B);
if (strlen($B)<2)
$B = '0'.$B;
return '#' . $R . $G . $B;
}
Then, echo fromRGB(115,25,190); will print
#7319be Source: RGB to hex colors and hex colors to RGB - PHP answered Oct 6, 2015 at 5:58 SuyogSuyog 2,4541 gold badge13 silver badges26 bronze badges 0 You can try this simple piece of code below. You can pass the rgb code
dynamically as well in the code. $rgb = (123,222,132);
$rgbarr = explode(",",$rgb,3);
echo sprintf("#%02x%02x%02x", $rgbarr[0], $rgbarr[1], $rgbarr[2]);
This will code return like #7bde84 answered Nov 23, 2016 at 9:52 IAmMilinPatelIAmMilinPatel 3831 gold badge9 silver badges18 bronze badges 3 Here is a function that will accept the string version of either an
rgb or rgba and return the hex color. function rgb_to_hex( string $rgba ) : string {
if ( strpos( $rgba, '#' ) === 0 ) {
return $rgba;
}
preg_match( '/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i', $rgba, $by_color );
return sprintf( '#%02x%02x%02x', $by_color[1], $by_color[2], $by_color[3] );
}
Example: rgb_to_hex( 'rgba(203, 86, 153, 0.8)' ); // Returns #cb5699 answered Nov 13, 2019 at 15:36 Mat LipeMat Lipe 6046 silver badges10 bronze badges 0 You can try this function rgb2html($r, $g=-1, $b=-1)
{
if (is_array($r) && sizeof($r) == 3)
list($r, $g, $b) = $r;
$r = intval($r); $g = intval($g);
$b = intval($b);
$r = dechex($r<0?0:($r>255?255:$r));
$g = dechex($g<0?0:($g>255?255:$g));
$b = dechex($b<0?0:($b>255?255:$b));
$color = (strlen($r) < 2?'0':'').$r;
$color .= (strlen($g) < 2?'0':'').$g;
$color .= (strlen($b) < 2?'0':'').$b;
return '#'.$color;
}
answered Oct 6, 2015 at 5:56 Rajarshi DasRajarshi Das 11.4k5 gold badges41 silver badges67 bronze badges In case you want to use external solutions, spatie has a package for doing exacly what you want: https://github.com/spatie/color $rgb = Rgb::fromString('rgb(55,155,255)');
echo $rgb->red(); // 55
echo $rgb->green(); // 155
echo $rgb->blue(); // 255
echo $rgb; // rgb(55,155,255)
$rgba = $rgb->toRgba(); // `Spatie\Color\Rgba`
$rgba->alpha(); // 1
echo $rgba; // rgba(55,155,255,1)
$hex = $rgb->toHex(); // `Spatie\Color\Hex`
echo $hex; // #379bff
$hsl = $rgb->toHsl();
echo $hsl; // hsl(210,100%,100%)
answered Feb 22,
2021 at 15:41 Ostap BrehinOstap Brehin 2,4693 gold badges23 silver badges26 bronze badges Not the answer you're looking for? Browse other questions tagged php or ask your own question.
|