gif 动画和 PIL/Pillow 的质量和文件大小问题?

nee*_*hiv 8 python gif animated-gif python-imaging-library pillow

我使用 Python、Pillow(PIL 的一个分支)和 cairo 创建了一个简短的动画。当前动画为 334 帧。我可以使用以下代码保存单个帧...

frame_images[0].save('test_frame.gif')
Run Code Online (Sandbox Code Playgroud)

我会得到一个 34 kb 的文件。我一直在使用枕头中的 save_all 选项创建 gif...

frame_images[0].save('test.gif', save_all=True, append_images=frame_images[1:], loop=0)
Run Code Online (Sandbox Code Playgroud)

结果并没有按预期工作。输出为 22.8 MB,是单帧大小的两倍多 334,质量大幅下降。图像上到处都是伪影,有几帧有前一帧的残留物,并且项目的颜色经常显示不正确。

有人对解决此问题有任何建议吗?我应该只用 Pillow 来保存静止帧,然后使用不同的库来创建 gif 吗?