百木园-与人分享,
就是让自己快乐。

轻松用几行Python代码实现动图倒放,学会了也玩废了...

前言

大家都喜欢搞笑视频倒放吧,视频倒放会给人不一样的感觉,比起按照原本的剧本,倒放的效果给人的感觉更出乎意料。所以,

我就想可不可以用Python实现视频或者图片倒放呢?于是,我做到了,我想把它分享给大家,让大家跟我一起玩。

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

在这里插入图片描述

(原图1)

在这里插入图片描述

(倒放1)

在这里插入图片描述

(原图2)

在这里插入图片描述

(倒放2)

在这里插入图片描述

上诉两个动图,可以通过几行Python代码就可以实现倒放效果。

导入库

from PIL import Image, ImageSequence

 

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

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

Python学习交流Q群:903971231###906715085(已满)
# 加载本地动图
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)。

最后

今天的这篇文章到这里就结束了,感兴趣的要趁热打铁动手敲起来。喜欢的点赞收藏,有不懂的记得点赞评论,我看见就会回复

的。

在这里插入图片描述


来源:https://www.cnblogs.com/123456feng/p/16206806.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 轻松用几行Python代码实现动图倒放,学会了也玩废了...

相关推荐

  • 暂无文章