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.