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:

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

Cezar
18 de Janeiro de 2016 - 17:37

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

Julião Kaiser
15 de Junho de 2015 - 09:33

Mauricio Programador
Olá Julião,
Obrigado pela contribuição.
Abraço.
23 de Junho de 2015 - 09:58

Francisco
26 de Abril de 2015 - 04:17

Berg
17 de Abril de 2015 - 19:12

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