前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >骚操作 | 用 Python 实现 GIF 倒放

骚操作 | 用 Python 实现 GIF 倒放

作者头像
Python小二
发布2020-09-08 16:04:05
3700
发布2020-09-08 16:04:05
举报
文章被收录于专栏:Python小二Python小二

简介

提到 GIF,大家应该都比较熟悉,它与 JPG、PNG 等文件格式一样,可用于制作静态图像,但是 GIF 格式还具有一项独有技能:可以用于创建动态图像。

不知大家有没有想过:如果将 GIF 倒放会是一种怎么样的景象?本文我们就用 Python 来实现一下 GIF 倒放。

实现

我们可以将 GIF 看作是由若干张静态图片组成的,要实现倒放,我们只需要将 GIF 分解成一张张静态图片,然后再将这些静态图片倒序合成为 GIF 即可。

倒放的实现需要用到 Pillow 模块,安装使用 pip install pillow 即可,代码的实现也比较简单,如下所示:

代码语言:javascript
复制
# 读取 GIF 
im = Image.open("1.gif")
# GIF 图片流的迭代器
iter = ImageSequence.Iterator(im)
index = 1
# 遍历图片流的每一帧 
for frame in iter:
    print("image %d: mode %s, size %s" % (index, frame.mode, frame.size))
    frame.save("./images/img%d.png" % index)
    index += 1
# 把 GIF 拆分为图片流 
imgs = [frame.copy() for frame in ImageSequence.Iterator(im)]
# 图片流反序
imgs.reverse()
# 将反序后的所有帧图像保存下来
imgs[0].save("reverse.gif", save_all=True, append_images=imgs[1:])

最后,我们来一起看一下实现效果。

源码在公号后台回复 200829 获取。

分享或在看是对我最大的支持

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小二 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档