Я использовал images2gif.py , который был прост в использовании. Похоже, он удвоил размер файла ..
26 PNG-файлов размером 110 КБ, я ожидал 26 * 110 КБ = 2860 КБ, но my_gif.GIF был 5,7 МБ
Также из-за того, что GIF был 8-битным, хорошие png стали немного размытыми в GIF
Вот код, который я использовал:
__author__ = 'Robert'
from images2gif import writeGif
from PIL import Image
import os
file_names = sorted((fn for fn in os.listdir('.') if fn.endswith('.png')))
#['animationframa.png', 'animationframb.png', 'animationframc.png', ...] "
images = [Image.open(fn) for fn in file_names]
print writeGif.__doc__
# writeGif(filename, images, duration=0.1, loops=0, dither=1)
# Write an animated gif from the specified images.
# images should be a list of numpy arrays of PIL images.
# Numpy images of type float should have pixels between 0 and 1.
# Numpy images of other types are expected to have values between 0 and 255.
#images.extend(reversed(images)) #infinit loop will go backwards and forwards.
filename = "my_gif.GIF"
writeGif(filename, images, duration=0.2)
#54 frames written
#
#Process finished with exit code 0
Вот 3 из 26 кадров:
Уменьшение размера изображения уменьшено:
size = (150,150)
for im in images:
im.thumbnail(size, Image.ANTIALIAS)