尽管 save_all=True,PIL 创建的 GIF 图像数量少于输入图像

问题描述 投票:0回答:1

我试图使用 matplotlib 将绘图制作成 GIF 以便进一步分析,但在分析过程中我注意到分析输出包含的图像少于预期。 我创建并保存了 3956 个关闭轴的图(这将使我的分析更简单),然后继续以我发现的最简单的方式创建 GIF,使用 PIL,我将图像打开到一个列表中,然后将该列表分类为另外 2 个列表1978 年的图像,然后使用带有

save_all=True
append_images=im[1:]
的 im.save。代码运行没有问题,GIF 也正常打开。 在进一步分析过程中,我注意到有些问题,后来我使用 GIMP 确认了这两个输出 GIF 仅具有 1798 和 1784 个图像,而不是我用来创建它们的 1978 个图像。

图像的打开不应该是问题,因为打开的图像列表的长度都是 1978,问题必须发生在代码上:

imS[0].save( "filename.gif",
save_all=True,
append_images=imS[1:],
duration=250,
loop=0)

我尝试使用多种图像格式,尝试更改持续时间,尝试更改

im.save()
中的“隔行”和“优化”选项,删除并重新安装PIL模块,但都没有改变结果。 我认为连续图像为空可能存在问题(每个图像应该在单位时间内显示数据,并且存在没有数据的间隔,因此这就是空图像的来源)并且一些压缩正在删除多个空图像但在看过 GIF 后,情况显然并非如此。 这就是我被困住的地方

python matplotlib python-imaging-library
1个回答
0
投票

我没有足够的声誉来发表评论,所以我在没有完全解决问题的情况下做出回应,对此感到抱歉。

直到现在我也遇到了同样的问题。您的框架列表是否包含重复或非常相似的框架?在这个git问题中,概述了pillow的预期行为是删除这些重复项。他们在这里明确指出:

删除重复的连续帧旨在成为一项功能,在不影响视觉输出的情况下减小文件大小。

目前,我也遇到了这个问题,无法找到解决方案,因为 git 问题的解决方法不再起作用。

© www.soinside.com 2019 - 2024. All rights reserved.