我是靠谱客的博主 强健天空,这篇文章主要介绍Python实现gif动图倒放,现在分享给大家,希望可以做个参考。

最近是有点忙,感觉好久没写博客了。但是最近看到一个有趣的就是gif动图的倒放,因为这个原理也并不是很难,而且用到的库以前也略微的看过一点点,所以要新学的东西不是很多。

开发环境 :pycharm + win10下python环境

主题思路就是将gif动图的每一帧都截取下来,将整张动图拆分成图片流,然后将图片流反序,最后将反序后的图片流重新合成成一张gif动图,下面贴上代码  :

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

然后下面是拆分的图片流:

最后是效果图对比,下面是原图:

之后就是倒放的动图:

哇,貌似看起来不是很明显,但是单独看两张动图就好一点了,原图是从背到正,转换后是从正脸转身

最后

以上就是强健天空最近收集整理的关于Python实现gif动图倒放的全部内容,更多相关Python实现gif动图倒放内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(105)

评论列表共有 0 条评论

立即
投稿
返回
顶部