Först måste du läsa in den fil du vill förminska. Det gör du t.ex med:
$src_im = imagecreatefromjpeg('sökväg_till/filnamn.jpg');
Där kanske det också varit aktuellt med imagecreatefromgif eller imagecreatefrompng.
Sedan måste du skapa bilden som ska innehålla din thumbnail:
$dstW = 100; // Bredd på thumbnail
$dstH = 100; // Höjd på thumbnail
$dst_im = imagecreatetruecolor($dstW, $dstH);
dstX och dstY är var någonstans på din $dst_im (thumbnail) du ska lägga den förminskade bilden. Normalt lägger du den i högra över hörnet, vilket ger värden 0 och 0.
srcX och srcY är var någonstans på originalbilden du vill börja hämta. Vad du lägger för värden här beror lite på hur du vill skapa din thumbnail. Kvadratisk, proportionell, klippa ut kvadrat från ej kvadratisk bild. För enkelhets skull sätter vi dessa värden till 0 och 0.
Detta kommer att ge dig en förvanskad bild, men du kan senare arbeta vidare på det för att få den variant som du tycker är bäst.
Du har även då förståelsen över andras lösningar, och kan hitta tips där.
Sedan behöver du bredden och höjden på originalfilen. Det får du med:
$srcW = imagesx($src_im);
$srcH = imagesy($src_im);
Nu är det dags att tillverka din thumbnail:
imagecopyresampled ( $dst_im, $src_im, 0, 0, 0, 0, $dstW, $dstH, $srcW, $srcH);
Sedan behöver du skapa en fil av den. Vi skapar en JPEG-fil:
imagejpeg($dst_im, 'sökväg/thumb_filnamn.jpg', 90);
Den sista siffran står för komprimering. Ju högre tal desto mindre komprimering (och högre kvalitet och filstorlek).
Alternativt kunde du skickat bilden direkt till webbläsaren:
header('Content-type: image/jpeg');
imagejpeg($dst_im, '', 90);
Slutligen är det snyggt att städa upp efter sig:
imagedestroy($src_im);
imagedestroy($dst_im);
Hoppas det var till någon hjälp för dig. :)


