Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Estou tentando trocar a cor de uma imagem pelo PHP. A imagem tem AZUL e LARANJA, quero trocar o AZUL por uma cor vinda do GET.
Consegui fazer algo, mas só troca um pixel.
<?php
header("Content-type: image/png");
function HexParaRGB($hex) {
$hex = ereg_replace("#", "", $hex);
$cor = array();
if(strlen($hex) == 3) {
$cor['r'] = hexdec(substr($hex, 0, 1) . $r);
$cor['g'] = hexdec(substr($hex, 1, 1) . $g);
$cor['b'] = hexdec(substr($hex, 2, 1) . $B);
}elseif(strlen($hex) == 6) {
$cor['r'] = hexdec(substr($hex, 0, 2));
$cor['g'] = hexdec(substr($hex, 2, 2));
$cor['b'] = hexdec(substr($hex, 4, 2));
}
return $cor;
}
$im = imagecreatefrompng("[http://localhost:8080/images/teste.png"](http://localhost:8080/images/teste.png));
$x = 15;
$y = 15;
$rgb = imagecolorat($im, $y, $x); //Procura qual cor está na posição X-Y na imagem.
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;if($cor == '0-0-255'){ //Se a cor for 0-0-255 (azul) muda para a cor vinda do GET
$mudaCor = "#".$_GET['cor'];
$corHex = HexParaRGB($mudaCor); //Converte a cor HEX para RGB
$color = imagecolorallocate($im, $corHex['r'], $corHex['g'], $corHex['b']);
imagesetpixel($im, $x, $y, $color); //Pinta o pixel na posição X-Y
}
imagepng($im);
imagedestroy($im);
?>Acho que teria que usar um WHILE e aumentar as variveis X e Y. Mas não estou conseguindo fazer.
Abraço e obrigado.
Carregando comentários...