Python代码实现动图倒放
短信预约 -IT技能 免费直播动态提醒
开始分享今天的技术之前,先来看几个动图(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代码实现动图倒放的文章就介绍到这了,更多相关Python动图倒放内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341