首页 > 解决方案 > 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 中做到这一点?

谢谢

标签: pythonimage-processingpython-imaging-libraryblurry

解决方案


感谢@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


推荐阅读