在不写入磁盘的情况下将 gif 编码为 base64 python

Encoding gif to base64 without writing to disk python

我可以通过先保存数据将 gif 编码为 base64。

    imageio.mimsave(output_fn, [img_as_ubyte(frame) for frame in gif], fps=original_fps)

    with open(output_fn, "rb") as gif_file:
            detect_base64 = 'data:image/gif;base64,{}'.format(base64.b64encode(gif_file.read()).decode())

我需要找到一种方法将上面的 gif 以图像数组的形式进行编码,并将相应的 fps 编码为 base64,而无需将其保存到 output_fn第一.

一般的做法是用BytesIO代替打开的文件,即

gif_file = io.BytesIO()

imageio.mimsave(gif_file, [img_as_ubyte(frame) for frame in gif], 'GIF', fps=original_fps)

detect_base64 = 'data:image/gif;base64,{}'.format(base64.b64encode(gif_file.getvalue()).decode())