我已经成功创建了一个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
答案 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控制台快得多。