Reduzir Imagem em PHP

Olá Pessoal,

Depois de muito tempo sem postar, estou de volta! E, felizmente, com mais tempo disponível para o blog! =)

Bom, semana passada precisei de um código em PHP que reduzisse o tamanho de uma imagem. Considerando que o usuário não deveria ter o trabalho de fazer isso em um software e só depois fazer upload no sistema, pesquisei e inseri o código.


$diretorio_original = "imagem_original/";
$diretorio_pequena = "imagem_pequena/";

// Se uma imagem foi enviada
if($_FILES['txt_imagem']['name'] != ''){
$ext = explode('.',$_FILES['txt_imagem']['name']);
$ext = $ext[count($ext)-1];
// Se a extensao for de um tipo valido
if(preg_match('/(gif|jpg|jpeg|png)/i',$ext)){
$nome_original = 'original_'.$_FILES['txt_imagem']['name'];
$nome_pequena = 'pequena_'.$_FILES['txt_imagem']['name'];

$caminho_original = $diretorio_original.$nome_original;
$caminho_pequena = $diretorio_pequena.$nome_pequena;

if(move_uploaded_file($_FILES['txt_imagem']['tmp_name'], $caminho_original)){
chmod($caminho_original, 0644);

//pega os valores da largura, altura e tipo da imagem
list($largura,$altura,$tipo) = getimagesize($caminho_original);

if ($tipo == 1) // gif
$imagem = imagecreatefromgif($caminho_original);
else if ($tipo == 2) // jpeg
$imagem = imagecreatefromjpeg($caminho_original);
else if ($tipo == 3) //png
$imagem = imagecreatefrompng($caminho_original);

$thumb = imagecreatetruecolor(128, 90);

imagecopyresampled($thumb, $imagem, 0, 0, 0, 0, 128, 90, $largura,$altura);
//reduz a imagem para 128 x 90

if ($tipo == 1) // gif
imagegif($thumb,$caminho_pequena);
else if ($tipo == 2) // jpeg
imagejpeg($thumb,$caminho_pequena);
else if ($tipo == 3) //png
imagepng($thumb,$caminho_pequena);

echo "Imagem reduzida com sucesso em ".$diretorio_original." e ".$diretorio_pequena;

} else {
echo "imagem não enviada!";
}
} else{
echo "extensão inválida";
}
} else {
echo "imagem não carregada!";
}

Baixe a versão simplificada aqui! =)

Até mais!

8 respostas em “Reduzir Imagem em PHP

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s