Merge GIFs with gifsicle

By  on  
Merge GIFs

Creating a GIF from a video is fairly simple at this point, as I pointed out in Convert Video to GIF or GIF to Video, but working with multiple GIFs is something many people would like to do.  The top GIF manipulation library for years has been Gifsicle, so I looked toward Gifsicle for merging multiple animated GIF images.

Before you merge your GIFs, however, you'll want to ensure that they're the same size.  Gifsicle has a --crop option which crops images to a given size:

gifsicle --crop 300x300 ....

If you have GIFs of different sizes (i.e. you don't crop), the earlier GIF may show up behind subsequent GIFs, making for a sloppy image.

Additionally you may receive a gifsicle: warning: too many colors, using local colormaps error.  To work around that error, you'll want to add --colors 256 parameter when merge the GIFs.

So let's assume you have GIFs of the same size and you're ready to create your merged GIF.  The following command will achieve the desired result:

gifsicle --crop 370x275 --colors 256 --merge first.gif second.gif -o merged.gif

You can use any number of GIFs and the outcome is a solid, single GIF.  If you're a performance nut, you'll want to optimize the GIF as well!

Gifsicle continues to amaze me and I look forward to using the utility more.  GIFs by nature are mostly for fun these days and Gifsicle makes that easy!

Recent Features

  • By
    Vibration API

    Many of the new APIs provided to us by browser vendors are more targeted toward the mobile user than the desktop user.  One of those simple APIs the Vibration API.  The Vibration API allows developers to direct the device, using JavaScript, to vibrate in...

  • By
    9 Mind-Blowing WebGL Demos

    As much as developers now loathe Flash, we're still playing a bit of catch up to natively duplicate the animation capabilities that Adobe's old technology provided us.  Of course we have canvas, an awesome technology, one which I highlighted 9 mind-blowing demos.  Another technology available...

Incredible Demos

  • By
    Multiple Backgrounds with CSS

    Anyone that's been in the web development industry for 5+ years knows that there are certain features that we should have had several years ago. One of those features is the HTML5 placeholder; we used JavaScript shims for a decade before placeholder came...

  • By
    PHP IMDB Scraper

    It's been quite a while since I've written a PHP grabber and the itch finally got to me. This time the victim is the International Movie Database, otherwise known as IMDB. IMDB has info on every movie ever made (or so it seems). Their...

Discussion

  1. That’s pretty neato! The possibilities are infinite (or dare I say OVER 9000)!

  2. Matija

    Gifsicle is fantastic. If you want to know more see http://webstackoflove.com/modifying-loop-flag-for-animated-gif-files/ as I’ve used it for modifying loop flags and batch processing.

    • Whoa, excellent! I was looking to do a post on exactly that but you’ve beaten me to it! Awesome!

  3. Well, TBH i’m not sure where exactly do I add the command lines :/

  4. Via the Terminal app or similar depending on your OS.

  5. NanooGeek

    gifsicle 1.87 Win64 works, and produces a combined output from two looping .gif from skywarn.org (did Not use --crop, since they are larger than the example, and of uniform size). However, the combined gif only loops through the 1st part.

    • NanooGeek

      Aha, one must use the --append flag, instead of --merge.

  6. Dan

    How do you get to the interface so you can actually create the gifs????

  7. Locks

    How would go about merging 100+ gifs in a directory? Does gifsicle work with grep functions?

    • Locks

      In case anyone else was looking for the answer to this question. This can be achieved with:
      gifsicle --colors 256 --merge *.gif -o output.gif

  8. Locks

    Can anyone recommend an alternative to gifsicle that can support merging gifs with greater than 8-bit (256) colour?

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