Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Resize animated GIF file without destroying animation

I need to resize an animated GIF file without destroying the animation.

How can I do it using PHP?

like image 447
riad Avatar asked Apr 05 '09 07:04

riad


People also ask

How do I change the size of a GIF without losing quality?

ResizeImage.net. ResizeImage.net is a no-nonsense online tool that helps you resize all types of images. The tool will accept GIF files of up to 30MB in size and 10MP in resolution. The tool lets you crop images, rotate images and also resize the image by specifying quality and aspect ratio.


2 Answers

if you have imagemagick access, you can do this:

system("convert big.gif -coalesce coalesce.gif"); system("convert -size 200x100 coalesce.gif -resize 200x10 small.gif"); 

this is most likely possible with the imagemagick plugin if you don't have system() access

NOTE: this may create a larger filesize though a smaller dimensions image due to coalescing essentially deoptimizing the image.

UPDATE: If you don't have ImageMagick access, you should be able to use a combination of the following steps to resize an animated gif (assuming you have GD access):

  1. Detect if the image is an animated gif: Can I detect animated gifs using php and gd? (top answer)
  2. Split the animated gif into individual frames: http://www.phpclasses.org/package/3234-PHP-Split-GIF-animations-into-multiple-images.html
  3. Resize the individual frames: http://www.akemapa.com/2008/07/10/php-gd-resize-transparent-image-png-gif/
  4. Recomposite the frames into an animated gif again: http://www.phpclasses.org/package/3163-PHP-Generate-GIF-animations-from-a-set-of-GIF-images.html

This is definitely much more intensive than the ImageMagick route, but it should be technically possible.

If you get it working, please share with the world!

like image 97
Jeremy Stanley Avatar answered Sep 30 '22 14:09

Jeremy Stanley


Try GDEnhancer (Use ImageCraft). It only need GD Library, and it keep gif animation

like image 44
nut Avatar answered Sep 30 '22 13:09

nut