Em algumas situações precisamos redimensionar uma imagem para uma largura e altura fixas e, se possível, 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 da imagem original e salvá-la com um nome diferente e com 100 pixels de largura por 70 pixels de altura. Note a qualidade de 80% 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 (redimensionada)
$nova_imagem = 'foto2.jpg';
// largura e altura da nova imagem
$nova_largura = 100; // 100px
$nova_altura = 70; // 70px
// vamos obter as dimensões da imagem original
list($largura, $altura) = getimagesize($diretorio .
$imagem_original);
// 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 80%
imagejpeg($imagem_temp, $diretorio . $nova_imagem, 80);
?>
|