segunda-feira, 6 de fevereiro de 2012

(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



Nenhum comentário:

Postar um comentário