Em algumas situações precisamos redimensionar uma imagem em porcentagens e gostaríamos de salvá-la com outro nome. Esta dica mostra como isso pode ser feito. O PHP nos fornece duas funções que permitem realizar esta tarefa: imagecopyresized() e imagecopyresampled(). De acordo com o manual do PHP, a função imagecopyresampled() retorna uma imagem com melhor qualidade. Assim, vamos usá-la nesta dica.
Aqui nós vamos obter uma cópia com o tamanho de 50% da imagem original e salvá-la com um nome diferente. Note a qualidade de 100% fornecida para a função imagejpeg().
Se estiver usando GIF ou PNG, lembre-se de usar as funções imagecreatefromgif(), imagecreatefrompng(), imagegif() e imagepng(). Vamos ao código:
<?
// local das imagens (deve ter permissão de escrita)
$diretorio = "/home/xxxx/xxxx/imagens/";
// imagem original
$imagem_original = 'foto.jpg';
// a nova imagem (será salva redimensionada)
$nova_imagem = 'foto2.jpg';
// porcentagem da nova imagem em relação à
// imagem original
$porcentagem = (50 / 100); // 50% // pode também escrever 0.5
// vamos obter as dimensões da imagem original
list($largura, $altura) = getimagesize($diretorio . $imagem_original);
$nova_largura = $largura * $porcentagem;
$nova_altura = $altura * $porcentagem;
// vamos redimensionar a imagem
$imagem_temp = imagecreatetruecolor($nova_largura, $nova_altura);
$original = imagecreatefromjpeg($diretorio . $imagem_original);
imagecopyresampled($imagem_temp, $original, 0, 0, 0, 0, $nova_largura,
$nova_altura, $largura, $altura);
// vamos salvar com a qualidade de 100%
imagejpeg($imagem_temp, $diretorio . $nova_imagem, 100);
?>
|