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 http://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.

Gostou? Não esqueça de curtir!

8 comentários

Deixe uma resposta

  1. Se precisar de hospedagem hospedameu.site planos anuais e baratos

     
  2. Estou na iWeb.com e não troco por uma hospedagem que certamente é barato porque prostitui seus servidores a ponto de encher ao limite.

    Então, não.

     
  3. Os códigos aqui postados tem limitação de uso, Eduardo Kraus?

    Grato pelo post.
    Abraço.

     
  4. Não há qualquer restrição

     
  5. Boa noite! Gostaria de saber se existe algum scrip ou vc tenha na qual na hora do redirecionamento eu possa escolher a largura e a altura?

     
  6. muito obrigado pelas dicas. consegui colocar marcas d'águas com imagem e texto alem de redimensionar gracas a você.
    blog favoritado.

     
  7. Obrigado pelo comentário.