Python : 从原始 gif 创建 "blurry gif"
Python : Create a "blurry gif" from original 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
我正在寻找一种从 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