CATEGORIAS

Redimensionando imagens com PHP/GD

Embora existam diversas classes para manipulação de imagens, redimensionar imagens usando somente
as funções no PHP é uma tarefa simples, vamos ver como isso é feito.

A teoria do redimensionamento é bem simples,
  • obtem-se as medidas da foto original;
  • divide-se a altura pela largura, isso serve para obter o fator de escala assim é possivel redimensionar proporcionalmente;
  • multiplique a largura desejada pelo fator de escala(obtido no passo anterior), o resultado é a nova altura da imagem redimensionada;
  • copie a imagem original redimensionado para a medidas obtidas

Usarei como exemplo, um de meus papeis de parede (1152x864px)







Na prática:


 <?php
// tutorial para redimensionar imagens

$foto="f1.jpg"; // nome do arquivo original
$larg=320; // largura do arquivo ja redimensionado (em PX) 
// carrega imagem
$original=imagecreatefromjpeg($foto);
// pega a largura da foto original
$larg_foto=imagesx($original);
// pega a altura da foto original
$alt_foto=imagesy($original);
// faz o calculo da proporção altura/largura
// afinal queremos que seja redimensionado proporcionalmente
$fator=$alt_foto/$larg_foto;

// faz o calcula da altura nova
$altura_nova=$larg*$fator;

// cria uma nova imagem com as dimensões reduzidas
$saida=imagecreatetruecolor($larg,$altura_nova);

// cria uma cópia redimensionada na imagem nova
imagecopyresized($saida,$original, 0, 0, 0, 0,$larg,$altura_nova,$larg_foto,$alt_foto);
// grava a imagem nova em arquivo com qualidade 80
imagejpeg($saida,"mini_foto.jpg",80);

// libera os recursos no servidor
imagedestroy($saida);
imagedestroy($original);
// fim :)
// viu como é simples?

?>


------------------------------------------------
Como resultado teremos uma imagem com 320x240px