如何实现gif格式图片倒放效果?
不知道大家看电影的时候有没有发现出现过这样的一个神奇场景:
一个子弹竟然从远处飞回到手枪中,整个场景呈现一种时空倒流的感觉?
正文
先来几个有趣的倒放动图娱乐一下~

猫:我谢谢你们全家

萌娃快乐针

尊老爱幼?

狗狗:敢从我嘴里抢食?

狗狗:敢从我嘴里抢食?
可以说是很魔性了
要说最近全球最火的电影,非《信条》莫属了,国内各大院线都有排片,冲着诺兰的名气大家都可以去看看,看不懂也没关系,当做看动作片也行。

关于电影的解读网上很多了,片中由于逆向时间所以有很多“倒放”的镜头,今天就用python来实现动图倒放的效果。
至于原理很简单。
我们都知道gif其实就是一帧帧的图片拼接而成,只要把这些图片拆出来,再反向拼接回去就可以了。
假设你电脑里已经有python环境了,使用pip安装PIL库就行。
from PIL import Image, ImageSequence
# 读取 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:])
运行以上脚本就可以把py文件同级目录下的1.gif倒装回来了。
如果是视频呢,就要用到moviepy这个库了,然后利用ffmpeg合成。原理也差不多。
本文来自博客园,作者:news_one,转载请注明原文链接:https://www.cnblogs.com/new-one/p/17646860.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律