(PHP) Hexadecimal em imagecolorat
Saudações
Muitas pessoas tem sérios problemas ao tentar converter a cor de retorno de imagecolorat para RGB ou Hexadecimal. Isto ocorre porque imagecolorat retorna nem um nem outro, mas sim ele retorna RGB em um número inteiro.
Mas Bruno, como converter então?
Simples, usando operadores bitshifting podemos retornar a cor em RGB que por fim poderá ser facilmente convertida em hexadecimal usando str_pad.
Enfim. Segue a função que retorna a cor em hexadecimal a partir do imagecolorat
function imagecoloratToHex($int)
{ $r = ($int >> 16) & 0xFF;
$g = ($int >> 8) & 0xFF;
$b = ($int & 0xFF);
return "#" . str_pad(dechex($r), 2, "0", STR_PAD_LEFT).str_pad(dechex($g), 2, "0", STR_PAD_LEFT).str_pad(dechex($b), 2, "0", STR_PAD_LEFT);
}
Aqui um exemplo do uso:
$corReal = imagecoloratToHex(imagecolorat($imageResourse, $xPixel, $yPixel));
Simples. Não é?
Abraços