我有以下代码将图像像素转换为相应的RGB值,我现在想要的是将所有RGB值转换为通常由imagecolorat($ resource,$ x,$ y)返回的十进制数,经过尝试差异。方式和搜索网络,我还无法提出一种方式,希望有人可以为我提供一种简单的方式。
<?php
$resource = imagecreatefrompng("c.png");
$pixelValue=imagecolorat($resource, 1, 1); // this normally return something as 402399
// but after performing this
$r = ($PixelsValue >> 16) & 0xFF; // result will be $r= 16
$g = ($PixelsValue>> 8) & 0xFF; // result will be $g=123
$b = $PixelsValue& 0xFF; // result will be $b=200
// now I want to return $r= 16,$g=123 and $b=200 to 402399
?>
答案 0 :(得分:1)
您可以使用base_convert文档here。 您正在将十六进制值转换为十进制,非常简单。
<?php
$r = '16';
$g = '123';
$b = '200';
$r = base_convert($r, 10, 16);
$g = base_convert($g, 10, 16);
$b = base_convert($b, 10, 16);
$value = $r.$g.$b;
echo $value; //will output 107bc8
?>