Python:从原始 gif 创建一个“模糊 gif”

问题描述

我正在寻找一种巧妙的方法来从 gif 中创建模糊的 gif。

目前我有一个脚本可以对 jpeg / png 执行相同的操作:

blurry_image = Image.open(file).filter(ImageFilter.BoxBlur(50))
blurry_output = io.BytesIO()
blurry_image.save(blurry_output,format=image_format)

但是这个脚本不适用于 gif,在 python 中有没有简单的方法可以做到这一点?

谢谢

解决方法

感谢@Marcel,我通过循环帧成功完成了这项工作

    im = Image.open(file)
    frames = [np.asarray(im_frame.convert('RGB').filter(ImageFilter.BoxBlur(50)))
              for im_frame in ImageSequence.Iterator(im)]
    blurry_images = [Image.fromarray(a_frame) for a_frame in np.stack(frames)]

    blurry_images[0].save(blurry_output,save_all=True,append_images=blurry_images[1:],format='gif',loop=0)

我不知道是否已经有一个库可以直接做到这一点,但在这里它可以工作 基本上,它将所有帧保存为 PNG 格式图像(带有模糊选项),并从保存的所有这些帧中重建 gif