Redimensionando imagens com PHP

Redimensionar imagens no PHP com a biblioteca GD segue o mesmo caminho do post Adicionando Texto á imagem com PHP.

Veja exemplo comentado:

<?php
// intval faz com que seja impossível passar valores diferentes de inteiros.
$largura_nova = intval( $_GET['largura'] );
 
// Somente evita números muito pequenos. 
// Para este exemplo não quero menor que 20
if($largura_nova < 20)
    $largura_nova = 20;

// Carregar imagem já existente no servidor
$imagem = imagecreatefromjpeg( "foto.jpg" );
/* @Parametros
 * "foto.jpg" - Caminho relativo ou absoluto da imagem a ser carregada.
 */

// Obtém a largura_nova da imagem
$largura_original = imagesx( $imagem );
/* @Parametros
 * $imagem - Imagem previamente criada 
 * Usei imagecreatefromjpeg
 */

// Obtém a altura da imagem
$altura_original = imagesy( $imagem );
/* @Parametros
 * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
 */

// Calcula a nova altura da imagem 
$altura_nova = intval( ( $altura_original * $largura_nova ) / $largura_original );

// Cria a nova imagem com os tamanhos novos
$nova_imagem = imagecreatetruecolor( $largura_nova, $altura_nova );
/* @Parâmetros
 * $largura_nova - Largura da nova imagem
 * $altura_nova - Altura da nova imagem
 */

// Cria uma cópia da imagem com os novos tamanhos e 
// passa para a imagem criada com imagecreatetruecolor
imagecopyresampled( $nova_imagem, $imagem, 0, 0, 0, 0, $largura_nova, $altura_nova, $largura_original, $altura_original );
/* @Parâmetros
 * $nova_imagem - Nova imagem criada com imagecreatetruecolor
 * $imagem - Imagem a ser redimensionada.
 * 0 - Valor X de destino. Usado quando recortar
 * 0 - Valor Y de destino. Usado quando recortar
 * 0 - Valor X da imagem original. Usado quando recortar
 * 0 - Valor Y da imagem original. Usado quando recortar
 * $largura_nova - Nova largura
 * $altura_nova - Nova altura
 * $largura_original - Altura da imagem original
 * $altura_original - Largura da imagem original
 */

// Header informando que é uma imagem JPEG
header( 'Content-type: image/jpeg' );

// Envia a imagem para o browser ou arquivo
imagejpeg( $nova_imagem, NULL, 80 );
/* @Parametros
 * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
 * O caminho para salvar o arquivo. 
 *     Se neste valor definir como NULL, como eu coloquei, será enviado ao Browser sem salvar.
 * 80 - Qualidade da compresão da imagem.
 */

Veja o exemplo funcionando em php.eduardokraus.com/code/10028/index1.php. Estou usando minha foto do facebook.

Quer o código fonte completo deste exemplo? Clique aqui.

Ficou com dúvidas, comente abaixo.

Fique por dentro de nossas novidades, ideias e atualizações