将所有RGB转换为一个像素的十进制值

时间:2018-11-03 16:27:01

标签: php gd pixel

我有以下代码将图像像素转换为相应的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

?>

1 个答案:

答案 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
?>