Atualizado em 15 de Abril de 2015

Função para Redimensionar Imagens

Olá pessoal,

No último artigo da série de redimensionamento de imagens com o PHP, vamos criar uma função que identifica automaticamente a extensão da imagem e já aplica as funções corretas de acordo com a mesma.

O nosso script segue o mesmo, apenas criamos um switch para definir qual método que o script deve executar, de acordo com o tipo de arquivo enviado.

Vamos a função:

<?php
function redimencionarImagem($imagem, $largura, $altura)
 {
  // Verifica extensão do arquivo
  $extensao = strrchr($imagem, '.');
  switch($extensao)
  {
   case '.png':
    $funcao_cria_imagem = 'imagecreatefrompng';
    $funcao_salva_imagem = 'imagepng';

    break;
   case '.gif':
    $funcao_cria_imagem = 'imagecreatefromgif';
    $funcao_salva_imagem = 'imagegif';

    break;
   case '.jpg':
    $funcao_cria_imagem = 'imagecreatefromjpeg';
    $funcao_salva_imagem = 'imagejpeg';

    break;
   default:
    return 'Erro. Tipo de arquivo não aceito';
    exit;

    break;
  }

  // Cria um identificador para nova imagem
  $imagem_original = $funcao_cria_imagem($imagem);

  // Salva o tamanho antigo da imagem
  list($largura_antiga, $altura_antiga) = getimagesize($imagem);

  // Cria uma nova imagem com o tamanho indicado
  // Esta imagem servirá de base para a imagem a ser reduzida
  $imagem_tmp = imagecreatetruecolor($largura, $altura);

  // Faz a interpolação da imagem base com a imagem original
  imagecopyresampled($imagem_tmp, $imagem_original, 0, 0, 0, 0, $largura, $altura, $largura_antiga, $altura_antiga);

  // Salva a nova imagem
  $resultado = $funcao_salva_imagem($imagem_tmp, "imagem_nova$extensao");

  // Libera memoria
  imagedestroy($imagem_original);
  imagedestroy($imagem_tmp);

  if($resultado)
  {
   return 'Imagem Reduzida';
  }
  else
  {
   return 'Erro!';
  }
 }

echo redimencionarImagem('imagem.png', 114, 45);
?>

Veja como fica a imagem:

 Imagem de Exemplo

Download do script Clique aqui.


Veja também: Redimensionar Imagem PNG com PHP
Veja também: Redimensionar Imagem GIF com PHP
Veja também: Redimensionar Imagem JPG com PHP


Não deixem de enviar seus comentários e suas sugestões para novos posts afinal o blog e de vocês.


E isso aí pessoal, até a próxima.

Comentários

Sua foto do perfil

Cezar

18 de Janeiro de 2016 - 17:37

Sua foto do perfil

Mauricio Programador

Olá Cezar,

Primeiro tem que colocar a propriedade enctype="multipart/form-data" na tag do form.

Depois colocar um input no formulário do tipo file com o nome file[]

E para receber este dados com o PHP:

$_FILES["file"]["tmp_name"][0]
$_FILES["file"]["tmp_name"][1]

assim por diante.

Abraço.

25 de Janeiro de 2016 - 14:45

Sua foto do perfil

Julião Kaiser

15 de Junho de 2015 - 09:33

Sua foto do perfil

Mauricio Programador

Olá Julião,

Obrigado pela contribuição.

Abraço.

23 de Junho de 2015 - 09:58

Sua foto do perfil

Francisco

26 de Abril de 2015 - 04:17

Sua foto do perfil

Berg

17 de Abril de 2015 - 19:12

Sua foto do perfil

Mauricio Programador

Olá Berg,

Esta variável contem o nome de uma função, que foi definido no switch, por isso ela se comporta como se fosse o nome de uma função.

Quanto aos pontos que você explanou estão corretos.

Quanto se a função imagejpg serve para png a respostar e não, estava errado ali no código já corrigi. Obrigado por me avisar.

Já se a função imagedestroy tem a mesma função do unlink, sim só que no caso desta função o seu uso e para imagens.

abraço.

23 de Abril de 2015 - 10:41

NEWSLETTER

Receba dicas de programação
em seu e-mail

TWITTER

Acompanhe tudo o que rola
com Mauricio Programador

NEWSLETTER