Malé rozlišení obrázků - jak na něj...

Ahoj, mám takovej problémek... Chtěl bych automaticky generovat náhledy na obrázky. Je blbost zadávat (když originál má třeba 640*480) velikost <img width=\"150\" height=\"100\">, protože počítač stejně bude stahovat plnou velikost (nějakých 100kB. Chtěl bych proto dynamicky vytvářet náhled na originální fotku v malém rozlišení a tedy i s malou velikostí, aby chudáci uživatelé nemuseli tahat hden taký "kvanta" dat... Poraďte, jak na to, prosím, fakt si s tím nevím rady...
Na to použij GD library.
Obrázek do stránky vložíš takto:
<img src="images.php?img=foto.jpg">

a toto das do souboru images.php:

<?

//nastaveni velikosti nahledu
define(MAX_WIDTH, 150);
define(MAX_HEIGHT, 150);


/* funkcia na vykreslenie error obrázku
parameter - retazec, ktorý sa má vypísat ako ERROR */
function ErrorImage($string)
{
header ("Content-type: image/png");
$im = imagecreate (70, 70);
$background_color = imagecolorallocate ($im, 90, 90, 90);
$text_color = imagecolorallocate ($im, 255, 255, 255);
imagestring ($im, 5, 5, 5, " ? ", $text_color);
imagepng ($im);
exit();
}

/* ak subor existuje - získanie informácií o obrázku
$size[0] - šírka
$size[1] - výška
$size[2] - formát */
$obr = "slozka_s_obrazky/$img";
if(file_exists($obr))
$size=getimagesize($obr);

/* ak subor neexistuje - zobrazenie error oébrazku */
else
ErrorImage("Soubor neexistuje");

/* ak zadaná šírka je menšia ako 1px, alebo nie je císlo, tak sa vykreslí error obrázok
to isté platí aj pre výsku */
if(MAX_WIDTH<1)
ErrorImage("Nekorektni sirka nahledu");
if(MAX_HEIGHT<1)
ErrorImage("Nekorektni vyska nahledu");

/* pridelenie hlavicky */
switch($size[2])
{
case 1:
$type="gif";
header("Content-type: image/png");
break;
case 2:
$type="jpeg";
header("Content-type: image/jpeg");
break;
case 3:
$type="png";
header("Content-type: image/png");
break;

/* ak je to iný formát obrázku alebo to nie je obrázok, vykreslenie error obrázku */
default:
ErrorImage("Nekorektni typ souboru");
}

/* výpocet novej šírky a výšky */
$scale_width=MAX_WIDTH/$size[0];
$scale_height=MAX_HEIGHT/$size[1];
$scale=($scale_width <= $scale_height ? $scale_width : $scale_height);
$new_width=ceil($scale*$size[0]);
$new_height=ceil($scale*$size[1]);

/* vytvorenie cielového a zdrojového obrázku */
$im = imagecreatetruecolor($new_width,$new_height);
switch($type)
{
case "gif":
$res_im=imagecreatefromgif($obr);
break;
case "jpeg":
$res_im=imagecreatefromjpeg($obr);
break;
case "png":
$res_im=imagecreatefrompng($obr);
break;
}

/* kopírovanie oblasti do cielového obázku */
imagecopyresampled($im, $res_im, 0, 0, 0, 0, $new_width+1, $new_height+1, $size[0], $size[1]);

/* zrušenie zdrojového obrázku */
imagedestroy($res_im);

/* výstup náhladu do browsera */
switch($type)
{
case "jpeg":
imagejpeg($im);
break;
case "gif":
case "png":
imagepng($im);
break;
}
?>
a zvladnete do toho nekdo jeste vlozit logo serveru? Nebo třeba šedej nápis adresy, za kterým bude normalne obrazek
Ježiš, zkus trochu vlastní snahy. O GD knihovně je na netu spousta článků (zkusil bych interval.cz ...), tak se to můžeš naučit a podle toho vyrobit. I když většinou stačí manuál a trocha logiky.