Um dos grandes inimigos dos webmasters é o limite de trafego, por vezes pequeno.
À uns meses atras deparei-me com o seguinte problema:
» Camara com 7.1 Megapixels
» Imagens com mais de 5MBs
Como não tinha problemas de espaço no servidor enviei 10 fotos (50MBs)
Apos 100 visitas tinham desaparecido os 5GB de trafego mensal.
Para evitar este tipo de problemas criei um codigo muito simples que:
» Diminui o tamanho das imagens
» Diminui a qualidade (opcional)
index.php
<?
$directory = opendir("images/");
while (false !== ($filename = readdir($directory))) {
$files[] = $filename;
}
sort($files);
$i=0;
while($files[$i] <> '')
{
if($files[$i] <> '..' && $files[$i] <> '.')
{
echo "<a href=\"show_image.php?size=big&img=" . $files[$i] . "\" <img src=\"show_image.php?size=thumb&img=" . $files[$i] . "\"></a><br>";
}
$i++;
}
?>
show_image.php
<?
if($size == "big")
{
$max_width = 750;
}
else
{
$max_width = 50;
}
$image = "images/$img";
$size = GetImageSize($image);
$im=@imagecreatefromjpeg($image);
if ($size[0] > $max_width)
{
$multiplier = $size[0] / $max_width;
$width = $size[0] / $multiplier;
$height = $size[1] / $multiplier;
$thumb = imagecreatetruecolor($width, $height);
ImageCopyResampled($thumb, $im, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
header("Content-type: image/jpeg");
imagejpeg($thumb,'',90);
}
else
{
header("Content-type: image/jpeg");
imagejpeg($im,'',90);
}
ImageDestroy($im);
?>
Agora cada imagem ocupa cerca de 100kbs e a 'diminuição' feita pela GD Lib tem uma qualidade superior à que é feita automaticamente pelos browsers
PS: Com este codigo basta colocarem as imagens no directorio 'images' que elas aparecem automaticamente (obvio)