[PHP] Introdução à GDLib - 2
Posted on August 4th, 2007 in Programação
Olá a todos mais uma vez,
Hoje vamos continuar a nossa iniciação à GDLib com PHP.
Depois de ontem termos aprendido os básicos, vamos agora avançar para um exemplo simples, com aplicação prática. Vamos criar um simples sistema de Thumbnails.
O objectivo deste post não é o de criar um sistema de thumbnails muito complexo, mas sim algo que dê as bases para a criação de um.
Antes de mais, e volto a repetir, para verem o funcionamento das funções que vou utilizar neste post, vão à página da documentação do PHP.
Neste post vamos utilizar esta maravilhosa foto da ilha da minha terra - as Berlengas. Foto
Neste pequeno exemplo vamos seguir este método:
Pegamos no lado maior da imagem, e reduzimo-lo até ter o tamanho de 200px. Pegamos nessa razão de redução e reduzimos também o outro lado menor, ficando assim com um thumbnail.
Simples Certo? Então vamos lá começar a codar!
header("Content-Type: image/jpeg");
// Nome do ficheiro a editar
$imagem = “berlengas.jpg”;
// Criar imagem a partir do ficheiro
$im = imagecreatefromjpeg($imagem);
// Mostrar imagem
imagejpeg($im);
imagedestroy($im);
?>
Com este exemplo vemos apenas a nossa imagem, ainda sem modificações, mas temos aqui uma função nova - imagecreatefromjpeg(). Esta função permite-nos criar uma imagem a partir de outra já existente, neste caso com compressão JPEG, não sendo necessário definir o seu tamanho.
Vamos agora determinar a largura e a altura da imagem, e em seguida ver qual das duas é maior.
header("Content-Type: image/jpeg");
// Nome do ficheiro a editar
$imagem = “berlengas.jpg”;
// Criar imagem a partir do ficheiro
$im = imagecreatefromjpeg($imagem);
// Determinar largura e altura
$largura = imagesx($im);
$altura = imagesy($im);
// Determinar qual dos dois é maior
$max = max($largura,$altura);
// Mostrar imagem
imagejpeg($im);
imagedestroy($im);
?>
Para determinar a largura e a altura da imagem usámos as funções imagesx() e imagesy() respectivamente.
Agora só nos falta mesmo reduzir a imagem.
header("Content-Type: image/jpeg");
// Nome do ficheiro a editar
$imagem = “berlengas.jpg”;
// Criar imagem a partir do ficheiro
$im = imagecreatefromjpeg($imagem);
// Determinar largura e altura
$largura = imagesx($im);
$altura = imagesy($im);
// Determinar qual dos dois é maior
$max = max($largura,$altura);
// Determinar a razão de redução
$tam_final = 200;
$razao = $tam_final / $max;
// Determinar largura e altura finais
$largura_final = $largura*$razao;
$altura_final = $altura*$razao;
// Reduzir a imagem
$im_final = imagecreatetruecolor($largura_final,$altura_final);
imagecopyresampled($im_final, $im, 0, 0, 0, 0, $largura_final, $altura_final, $largura, $altura);
// Mostrar imagem
imagejpeg($im_final);
imagedestroy($im_final);
imagedestroy($im);
?>
Penso que o código é bastante fácil de entender, mas aconselho a darem uma vista de olhos na documentação do PHP à função imagecopyresampled().
Resultado final:
![]()
E pronto, temos o nosso simples sistema de thumbnails. Já podem ir mostrar aos pais, amigos e a quem quiserem, o que aprenderam hoje!
Estou a pensar finalizar esta Introdução à GDLib com apenas mais um artigo, mas qualquer para sugestão, seja ela para novo artigo, ou uma crítica, a caixa de comentários está aberta
Abraços,
Pedro Diogo
O Custódio, do blog DinheiroOportunidade.com, um blog sobre como ganhar dinheiro na internet, está a fazer um concurso com um prémio de 1000 Euros. Eu estou a participar com este post, escrito aqui no blog e que é um dos meus melhores posts…

3 Responses
Cara gostei da sua explicação…
Mais gostaria de saber se tem como escrever em cima da imagem !!
Grato !!
Claro que sim
Dá uma vista de olhos no tutorial anterior e no próximo que tem lá a explicação 
olá,
Obrigado pela tua participação.
Já ficou registada.
Obrigado