Você precisará de: Biblioteca GD Instalada.
-------------------------------------------------------------------------------------
As miniaturas de imagens, tambem sao conhecidas como thumbnails, sao bastante comuns em Web. Normalmente sao utilizadas para exibir amostras das imagens originais. Alguns webmasters, principalmente dos sites que publicam fotos, criam uma espécie de álbum de fotografias, onde o visitante pode clicar sobre a miniatura para ver a imagem no seu tamanho real.
Outro exemplo pode ser citado sao as livrarias virtuais. Se voce ja acessou o site de alguma dessas livrarias, provavelmente ja deve ter visto a capa de um livro em formato reduzido.
Existem duas formas de exibir miniaturas de imagens em uma pagina. Uma delas é utilizar apenas HTML para exibir a imagem original em dimensoes reduzidas. Porem este nao é o metodo ideal, pois o navegador ira receber a imagem em seu tamanho original e ainda terá que rendimencioná-la.
Outra forma consiste em gerar miniaturas em arquivos separados. É aí que entra o PHP, pois a geracao desses arquivos pode ser feita de forma automática, o que lhe pouparia um bom tempo e voce nem precisaria ter um editor grafico instalado em sua maquina. Vamos agora criar um programa em PHP para realizar essa geracao.
O programa apresentado a seguir, o miniatura.php, cria imagens reduzidas a partir da imagem que voce especificar, permitindoainda que voce determine se o tamanho da miniatura será fixo ou se será calculado como um percentual di tamanho da imagem original. Acompanhe o código:
miniatura.php
<?php
// define a imagem a partir da qual será gerada a minuatura
$imagem = "imagem_original.jpg";
// **** configurações da miniatura *******
$tamanho_fixo = "N"; // S ou N
$largura_fixa = 192; // usado somente com tamanho_fixo=S
$altura_fixa = 144; // usado somente com tamanho_fixo=S
$percentual = 40; // usado somente com tamanho_fixo=N
// **************************************
if(!file_exists($imagem))
{
echo "Arquivo da imagem não encontrado!";
exit;
}
if($tamanho_fixo=="N" && ($percentual<1 || $percentual>100))
{
echo "O percentual deve ser um número entre 1 e 100!";
exit;
}
// monta o nome do arquivo resultante
$arquivo_miniatura = explode('.', $imagem);
$arquivo_miniatura = $arquivo_miniatura[0]."_mini.jpg";
// lê a imagem de origem e obtém suas dimensões
$img_origem = ImageCreateFromJPEG($imagem);
$origem_x = ImagesX($img_origem);
$origem_y = ImagesY($img_origem);
// se não for tamanho fixo, calcula as dimensões da miniatura
if($tamanho_fixo=="S")
{
$x = $largura_fixa;
$y = $altura_fixa;
}
else
{
$x = intval ($origem_x * $percentual/100);
$y = intval ($origem_y * $percentual/100);
}
// cria a imagem final, que irá conter a miniatura
$img_final = ImageCreateTrueColor($x,$y);
// copia a imagem original redimensionada para dentro da imagem final
ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x+1, $y+1, $origem_x , $origem_y);
// salva o arquivo
ImageJPEG($img_final, $arquivo_miniatura);
// libera a memória alocada para as duas imagens
ImageDestroy($img_origem);
ImageDestroy($img_final);
?>
<html>
<head>
<title>Miniatura</title>
</head>
<body>
<p align="center">
<img src="<?php echo $imagem; ?>">
<img src="<?php echo $arquivo_miniatura; ?>">
</p>
<p align="center">
<b>Imagem original</b>: <?php echo $imagem." (".$origem_x." x ".$origem_y.")";?><br>
<b>Miniatura gerada</b>: <?php echo $arquivo_miniatura." (".$x." x ".$y.")";?>
</p>
</body>
</html>
Para mais informacoes sobre a biblioteca GD:
http://br.php.net/gd
Bom, foi isso ae, espero que gostem.
Faloww