CATEGORIAS

Redimensionando imagens com PHP/GD

Embora existem 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