Generating an animated GIF in Python

Harry picture Harry · Oct 24, 2012 · Viewed 26.4k times · Source

I'm trying to generate an animated GIF using images2gif.py (pastebin to the most recent verson : bit.ly/XMMn5h ).

I'm using this Python script:

__author__ = 'Robert'
from images2gif import writeGif
from PIL import Image
import os

file_names = sorted((fn for fn in os.listdir('.') if fn.endswith('.gif')))
#['animationframa.png', 'animationframb.png', ...] "

images = [Image.open(fn) for fn in file_names]

size = (150,150)
for im in images:
    im.thumbnail(size, Image.ANTIALIAS)

print writeGif.__doc__

filename = "my_gif.GIF"
writeGif(filename, images, duration=0.2)

However, I am getting the following error:

File "C:\Python27\lib\images2gif.py" , line 418, in writeGifToFile
globalPalette = palettes[ occur.index(max(occur)) ] ValueError: max() 
arg is an empty sequence

It seems to me that occur is empty. What is wrong, and is there a better way?

Answer

Marwan Alsabbagh picture Marwan Alsabbagh · Oct 24, 2012

OK I have tested your exact code on two different machines, and it works perfectly on both. One machine is Ubuntu 12.04 and the other is running Windows XP. They are both using Python 2.7, and the latest version of images2gif which I downloaded from here. I recommend the following:

  1. check what version of python and the libraries you are using, try and get the latest ones.
  2. test it on another machine
  3. try and uninstall python and all the libraries and try and re-install