由images2gif.py从.png文件创建的空白gif

时间:2016-05-27 15:19:55

标签: python python-2.7 pygame

我正在尝试使用pygame.image.save保存的pygame框架创建一个gif,假设框架已经保存在运行时目录中,然后我使用这段代码:

file_names = sorted((fn for fn in os.listdir('.') if fn.endswith('.png')))

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

filename = "my_gif.GIF"
writeGif(filename, images, duration=1.0, dither=0)

运行该文件后没有错误.gif文件权重为21 KB,但我能看到的所有内容都是黑屏(即使.png文件没有黑色的任何内容)。

但之前在images2gif.py中存在错误:

fp.write(globalPalette)
TypeError: must be string or buffer, not None

我在这个问题的最佳答案中使用了方法:Error in images2gif.py with GlobalPalette

现在它不会引发任何错误,但.gif文件完全是黑色。

我使用Python 2.7.6

这是生成.png然后生成.gif:

的完整代码
import pygame, sys, os
from images2gif import writeGif as writeGif
from PIL import Image
from pygame.locals import *

def main():
    pygame.init()
    surface = pygame.display.set_mode((800, 600), 0, 32)
    surface.fill((255,0,0))

    center = (800 // 2, 600 // 2)

    count = 1
    while (count < 26):
        for event in pygame.event.get():
            if event.type==QUIT:
                pygame.quit()
                sys.exit()
        pygame.draw.rect(surface, (0, 255, 255), (center[0], center[1] + (count * 5), 5, 5))
        filename = 'frame-%03d.png' % (count)
        count = count + 1
        pygame.image.save(surface, filename)

    pygame.quit()

    file_names = sorted((fn for fn in os.listdir('.') if fn.endswith('.png')))

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

    filename = "my_gif.GIF"
    writeGif(filename, images, duration=1.0, dither=0)
    sys.exit()

main()

也许有更好的方法从这些.png文件创建gif或电影?我不必使用images2gif.py

0 个答案:

没有答案