首页 > 解决方案 > 有没有办法在 python 中生成 gif 而不会消耗过多的 RAM?

问题描述

我正在编写一个小应用程序来从 kifu 文件(它是一种用于保存日本象棋游戏的文件)生成 GIF。我目前正在使用 Matplotlib 来绘制棋盘和棋子,并使用 matplotlib.animation.FuncAnimation 类结合 numpngw.AnimatedPNGWriter 来编写 gif。但是,它使用超过 800MB 的 RAM 来生成 80 帧的单个 gif。经过反思,这个值似乎并不奇怪,因为(据我了解)每个帧的尺寸为 1700x1000 并且是彩色的。因此,要保持每一帧都在帧中,它至少需要 1700*1000*80*(nb_bytes by pixel),这是一个巨大的 RAM。

有没有办法使用 matplotlib 或其他库来最小化这个数量?我想我需要在创建它们之后压缩帧而不是保持它们原始,但我不知道该怎么做。

非常感谢

标签: pythonmatplotliboptimizationgifram

解决方案


推荐阅读