乐趣区

关于python:几行Python代码实现动图倒放太好玩

开始分享明天的技术之前,先来看几个动图(gif)

(原图 1)

(倒放 1)


(原图 2)

(倒放 2)

上诉两个动图,能够通过几行 Python 代码就能够实现倒放成果。\

导入库

from PIL import Image, ImageSequence

Image 库用于读取(加载)图片

ImageSequence 用于将 GIF 拆解为图片(一帧一图)

# 加载本地动图
image = Image.open("cg.gif")
# GIF 动图拆分器
list = ImageSequence.Iterator(image)

拆分动图

imgs = []
# 拆分后的图片进行编号,从 1 开始
k = 1
# 遍历图片流的每一帧
for frame in list:
    # 拆分后的图片,保留到 chenge 文件夹下,图片命名为 img_1.png、img_2.png、...
    frame.save("./chenge/img_%d.png" % k)
    imgs.append(frame.copy())
    k += 1

将拆解后的帧图进行反转(倒序排列),并保留成新的动图 reverse_cg.gif

# 拆分图片流进行反序
imgs.reverse()
# 将反序后所有帧图保留下来,命名为 reverse_cg.gif
imgs[0].save("reverse_cg.gif", save_all=True, append_images=imgs[1:])

最初生成后果

残缺源码

from PIL import Image, ImageSequence
# 加载本地动图
image = Image.open("cg.gif")
# GIF 动图拆分器
list = ImageSequence.Iterator(image)

imgs = []
# 拆分后的图片进行编号,从 1 开始
k = 1
# 遍历图片流的每一帧
for frame in list:
    # 拆分后的图片,保留到 chenge 文件夹下,图片命名为 img_1.png、img_2.png、...
    frame.save("./chenge/img_%d.png" % k)
    imgs.append(frame.copy())
    k += 1

# 拆分图片流进行反序
imgs.reverse()
# 将反序后所有帧图保留下来,命名为 reverse_cg.gif
imgs[0].save("reverse_cg.gif", save_all=True, append_images=imgs[1:])

以上就是本文的动图倒放技术过程

原理 :读取动图,将动图进行拆分(一帧一图),将拆分后的动图进行反转(实现倒放的要害),而后反转后的图片保留新动图(gif)。

以上就是本次分享的所有内容,如果你感觉文章还不错,欢送关注公众号:Python 编程学习圈,每日干货分享,发送“J”还可支付大量学习材料。或是返回编程学习网,理解更多编程技术常识。

退出移动版