Optimize GIFs

By  on  

I've written a lot about converting different media types lately, especially GIFs, including Convert Video to GIF or GIF to VideoDetect if a GIF is Animated, and Get the First Frame of an Animated GIF with ImageMagick, but whether it's ImageMagick or ffmpeg doing the work, GIFs do not always come out optimized.  Since GIFs can be taxing on the user's machine, it's best to optimize GIFs for top performance.  Another handy GIF manipulation library, gifsicle, has a few built in methods for optimizing GIFs.

Before jumping into the GIF optimization commands, it's important to point out that gifsicle is much more than a GIF optimizer.  gifsicle can resize GIFs, merge GIFs, and do just about anything you'd hope you could do with a GIF.

gifsicle has three types of GIF optimization to choose from:

  • -O1 Stores only the changed portion of each image. This is the default.
  • -O2 Also uses transparency to shrink the file further.
  • -O3 Try several optimization methods (usually slower, sometimes better results).

The shell command to optimize GIFs is:

gifsicle -O3 animation.gif -o animation-optimized.gif

If you have the time and patience, I recommend -O3 as was able to get much more optimized GIFs with this method.  On some GIFs I saved up to 20% in file size, and depending on your specific GIF, you may be able to save more!

Recent Features

  • By
    7 Essential JavaScript Functions

    I remember the early days of JavaScript where you needed a simple function for just about everything because the browser vendors implemented features differently, and not just edge features, basic features, like addEventListener and attachEvent.  Times have changed but there are still a few functions each developer should...

  • By
    Camera and Video Control with HTML5

    Client-side APIs on mobile and desktop devices are quickly providing the same APIs.  Of course our mobile devices got access to some of these APIs first, but those APIs are slowly making their way to the desktop.  One of those APIs is the getUserMedia API...

Incredible Demos

Discussion

  1. I’ve been using the PageSpeed Insights resources lately. Run the already published page through Insights, click on desktop, and if there’s anything that isn’t optimized you can download their versions of it. (If you download through the mobile tab, the images will be resized to be too small for desktop.)

    Google tends to optimize everything twice as good as any software I’ve come across. In fact, I wish they’d release their own software that uses the same methods.

    I don’t know about gifsicle, I don’t use a lot of GIF’s, but Insights might be worth looking at for comparison.

  2. Thanks for sharing this David. gifsicle has been added in my ‘to learn’ list.

  3. To met, the final product isn’t good enough, Of course I don’t know how to do it better, since I’m here reading tutorials, but I’ve seen better gifs on tumblr. And tumblr only upload gifs till 499k, after that the gif is frozen. So, how to do an amazing gift, good quality and low size? That’s what I was looking for when I came here. Anyway, nice to know, although it’s a good tutorial, thank you for sharing.
    Regards

  4. You can also do it in your browser by using this online tool:
    http://gifcreator.me/
    I’ve made this one using it: http://i.imgur.com/hUkHzPD.gif

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!