Meiner Meinung nach hast du zwei sehr wichtige Funktionen vergessen, die z.B. für einen Thumbnailgenerator unentbehlich sind.
Als da wären:
imagecreatetruecolor
Create a new true color image
und
imagecopyresampled
imagecopyresampled() copies a rectangular portion of one image to another image, smoothly interpolating pixel values so that, in particular, reducing the size of an image still retains a great deal of clarity.