Метод imagecopyresized поможет вам. Это хорошо документировано:
bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
imagecopyresized () копирует
прямоугольная часть одного изображения
другое изображение. dst_image это
целевое изображение, src_image является
идентификатор исходного изображения.
Другими словами, imagecopyresized ()
займет прямоугольную область от
src_image ширины src_w и высоты
src_h в позиции (src_x, src_y) и
поместите его в прямоугольную область
dst_image ширины dst_w и высоты
dst_h в позиции (dst_x, dst_y).
Вы должны убедиться, что ваша библиотека gd поддерживает gifs. Но я думаю, что это больше не проблема.