RGBA,调色板和抖动问题使用image2gif.py python创建动画gif

时间:2016-05-18 14:28:03

标签: animation gif palette

我已经成功创建了一个GIF动画,但是有两个问题 - 得到的动画gif是灰度和抖动。我在Robert King的代码片段中使用了变种

Programmatically generate video or animated GIF in Python?

King代码片段使用来自image2gif.py的writeGif,并进行了以下修改:(i)访问" palette" (在我的image2gif.py版本的97行左右),根据stackoverflow Q& A'

        #palette = getheader(im)[1]
        palette = im.palette.getdata()[1]

(ii)我还必须添加一些代码来说明我所拥有的图像类型,图像的形状是4,我将其解释为RGBA,我将第3和第4行添加到writeGif(第186行)在我的image2gif.py)

1如果len(im.shape)== 3和im.shape [2] == 3:

2 im = Image.fromarray(im,' RGB')。convert(' P',dither = dither)

3 elif len(im.shape)== 3和im.shape [2] == 4:

4 im = Image.fromarray(im,' RGBA')。convert(' P',dither = dither)

5 elif len(im.shape)== 2:

6 im = Image.fromarray(im,' L')。convert(' P',dither = dither)

如何获得颜色正确?我想我没有正确访问和编写调色板。我没有看到任何关于此的讨论。

注意:我可以使用GifConstructionKit(windows)创建一个带有这些png文件的动画gif,但是我有数以千计的动画GIF来创建并想要一个程序化的解决方案。 (我还没有ffmpeg,也没有安装openCV。)

paulj03

1 个答案:

答案 0 :(得分:0)

好吧,我解决了自己的问题。我终于理解了关于imagemagick和convert.exe的消息。我下载并安装了它然后我编写了一个脚本来使用os.system函数执行convert.exe。

import os
cmd = 'cd <directory with images>'
cmd2 = 'convert *.png movie.gif'
os.system(cmd)
os.system(cmd2)

我实际上将所有内容写入bat文件,然后从cmd窗口(Windows机器)运行。它似乎比Python控制台快得多。