十行Python代码制作一个视频倒放神器

作者:嗨!栗子同学 时间:2022-02-03 13:40:15 

导语

大家好,我是栗子同学!

今天给大家分享一个好玩的东西

让时光倒流——当当当,其实就是让视频倒放而已

正常的视频如下

十行Python代码制作一个视频倒放神器

倒放视频如下

十行Python代码制作一个视频倒放神器

效果很赞吧,等你学会了这个,你才会发现,抖音上那些杯子里的水倒流,倒着跑步等看似很炫酷很神秘的视频,其实就是一键倒放而已!

那么,今天小编就来探索Python代码如何实现这个倒放的功能叭~

这些搞笑的gif跟小视频都是将正常的流畅通过倒放产生的效果啦

其实制作起来却非常简单,原理就是将gif图片拆分出来每一帧,再将拆分的每一帧图片反向排序保存到gif里即可,只需要十行代码

源码如下

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:])

效果展示

十行Python代码制作一个视频倒放神器

哈哈哈,看懂这个视频了嘛!!

十行Python代码制作一个视频倒放神器

当遇到老人的时候应该.......

完整的一组效果

少年触电,勇士及时救援!

十行Python代码制作一个视频倒放神器

去吧!皮卡丘

十行Python代码制作一个视频倒放神器

# python下的图像处理库
from PIL import Image, ImageSequence
# 系统模块
import os

# 用于读取gif动图
im = Image.open("读取图片的名称")
# gif图片流的迭代器
iter = ImageSequence.Iterator(im)

index = 1

for frame in iter:
   # 每一帧图片
   print("image %d: mode %s, size %s" % (index, frame.mode, frame.size))
   # 若保存的路径不存在,则创建文件夹
   path = "imgs"
   if path not in os.listdir():
       os.makedirs(path)
   # 将每一帧图片保存到imgs文件夹下
   frame.save("./imgs/frame%d.png" % index)
   index += 1

# 将gif拆分成图片流
imgs = [frame.copy() for frame in ImageSequence.Iterator(im)]

# 输出原图
# imgs[0].save("./out.gif", save_all=True, append_images=imgs[1:])

# 将图片流反序
imgs.reverse()

# 将反序后的图片流保存并输出
imgs[0].save("./reverse_out.gif", save_all=True, append_images=imgs[1:])

来源:https://blog.csdn.net/xy258009/article/details/122884012

标签:Python,视频,倒放
0
投稿

猜你喜欢

  • js换图片效果可进行定时操作

    2023-08-23 07:45:34
  • Python报错SyntaxError:unexpected EOF while parsing的解决办法

    2023-10-01 10:29:54
  • 网页设计的色彩思考

    2007-10-19 13:30:00
  • Python实现读取TXT文件数据并存进内置数据库SQLite3的方法

    2021-03-01 14:14:27
  • 编辑BLOG文章的一些好习惯

    2007-11-15 06:35:00
  • 仿google的asp分页代码

    2009-03-08 18:27:00
  • asp根据出生时间判断生肖

    2008-03-24 19:49:00
  • 浅析阿里巴巴前端招聘考题

    2008-01-19 09:52:00
  • oracle SQL命令大全

    2009-07-02 11:55:00
  • 关于文件命名

    2009-09-18 16:29:00
  • 利用phpExcel实现Excel数据的导入导出(全步骤详细解析)

    2023-06-22 02:56:42
  • Golang依赖注入工具digo的使用详解

    2023-08-27 13:00:43
  • python实现会员管理系统

    2023-11-13 19:44:46
  • Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作

    2023-07-07 08:25:36
  • Python爬虫小技巧之伪造随机的User-Agent

    2023-11-02 21:32:41
  • Web脚本开发语言比较

    2007-08-22 17:32:00
  • sql之IN和BETWEEN条件运算

    2007-09-11 13:35:00
  • 10分钟学会Google Map API (一)

    2009-06-07 18:17:00
  • Python+Opencv答题卡识别用例详解

    2021-09-08 22:16:13
  • 利用JS提交表单的几种方法和验证(必看篇)

    2023-08-17 16:43:22
  • asp之家 网络编程 m.aspxhome.com