轻松用几行Python代码实现动图倒放,学会了也玩废了...
2022/5/5 14:16:37
本文主要是介绍轻松用几行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)。
最后
今天的这篇文章到这里就结束了,感兴趣的要趁热打铁动手敲起来。喜欢的点赞收藏,有不懂的记得点赞评论,我看见就会回复
的。
这篇关于轻松用几行Python代码实现动图倒放,学会了也玩废了...的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享