脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python代码实现动图倒放

Python代码实现动图倒放

2022-11-16 13:49Python研究者 Python

这篇文章主要介绍了Python代码实现动图倒放,文章通过利用gif动图实现倒放效果,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助

开始分享今天的技术之前,先来看几个动图(gif)

(原图1)

Python代码实现动图倒放

(倒放1)

Python代码实现动图倒放

(原图2)

Python代码实现动图倒放

(倒放2)

Python代码实现动图倒放

上诉两个动图,可以通过几行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:])

最后生成结果:

Python代码实现动图倒放

完整源码:

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动图倒放内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/lyc2016012170/article/details/123588049

延伸 · 阅读

精彩推荐
  • Python详解python中list的使用

    详解python中list的使用

    这篇文章主要介绍了python中list的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来...

    王艺先的博客5462021-06-06
  • Pythonpython批量查询、汉字去重处理CSV文件

    python批量查询、汉字去重处理CSV文件

    这篇文章主要为大家详细介绍了python批量查询、汉字去重处理CSV文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Lavender_sx7232021-02-27
  • PythonPython源码学习之PyObject和PyTypeObject

    Python源码学习之PyObject和PyTypeObject

    今天给大家带来的是关于Python源码的相关知识学习,文章围绕着PyObject和PyTypeObject展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下...

    Jakob_Hu9762021-12-02
  • Pythonpython负载均衡的简单实现方法

    python负载均衡的简单实现方法

    这篇文章给大家介绍用python实现最简单的负载均衡方法,即将请求发送到未宕机的服务器上,感兴趣的朋友一起看看吧...

    熔遁丶螺旋手里剑5012021-01-12
  • PythonDjango def clean()函数对表单中的数据进行验证操作

    Django def clean()函数对表单中的数据进行验证操作

    这篇文章主要介绍了Django def clean()函数对表单中的数据进行验证操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Violet-Guo6312020-07-10
  • Pythonpython定时利用QQ邮件发送天气预报的实例

    python定时利用QQ邮件发送天气预报的实例

    下面小编就为大家分享一篇python定时利用QQ邮件发送天气预报的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    老板丶鱼丸粗面2952020-12-18
  • Pythonpython 划分数据集为训练集和测试集的方法

    python 划分数据集为训练集和测试集的方法

    今天小编就为大家分享一篇python 划分数据集为训练集和测试集的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    心雨心辰25682021-04-28
  • PythonPython最好的日期处理库pendulum的使用指南

    Python最好的日期处理库pendulum的使用指南

    关于日期处理,Python 提供了很多的库,比如标准库 datetime、第三方库 dateutil、arrow 等等。本文将为大家介绍一个小编最喜欢的库 pendulum,用起来可以说非常...

    古明地觉10402022-07-21