A vantagem deste script é que ele gera a thumb (miniatura de foto) exatamente do tamanho que você deseja e não fica com altura ou largura diferente. Basicamente funciona assim você determina 200x100px, por exemplo, a imagem tem 640x620px logo se eu fazer proporcional vai encontrar que a minha largura é maior eu vou ter um arquivo de 200x193px, ou seja não esta correto vai ficar maior na altura com esse problema montei esse thumb que faz a dimensão exata.
sem mais blablabla vai ai o script
<?php
header("Content-type: image/jpeg");
$formanome = explode("::", $_GET['imagem']);
$im = $formanome['1'];
$im = imagecreatefromjpeg($im); // Cria uma nova imagem a partir de um arquivo ou URL
$wid = $formanome['0'];
$hei = $formanome['2'];
$origem_x = ImagesX($im);
$origem_y = ImagesY($im);
//VERIFICA VALOR MAIOR
if($origem_x > $origem_y)
$percentual = $wid*100/$origem_x;
else
$percentual = $hei*100/$origem_y;
$widn = intval ($origem_x * $percentual/100);
$hein = intval ($origem_y * $percentual/100);
//Sertifica que os tamanhos estão corretos
if(($hein > $hei) or ($widn > $wid)){
if($hein > $hei)
$percentual = $hei*100/$hein;
elseif($widn > $wid)
$percentual = $wid*100/$widn;
$widn = intval ($widn * $percentual/100);
$hein = intval ($hein * $percentual/100);
}
$left = ($wid-$widn)/2;
$top = ($hei-$hein)/2;
$img = NULL;
$img = imagecreatetruecolor($wid, $hei);
// Troca o fundo da imagem
$white = imagecolorallocate($im, 255, 255, 255);
imagefill($img, 0, 0, $white);
imagecopyresampled($img, $im, $left, $top, 0, 0, $widn, $hein, $origem_x, $origem_y);
imagejpeg($img);
?>
<img src="thumb.php?imagem=200::imagem.jpg::100" />
<img src="thumb.php?imagem=largura::imagem.jpg::altura" />
Lembrando que o caminho da imagem tem que estar direcionada apartir de onde estiver o arquivo thumb
Se não entendeu como funciona direito é só da um comentario ai em baixo, flws!