欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python生成gif【简明教程】

发布时间:2025/4/16 python 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python生成gif【简明教程】 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

简述

网上看到动图,觉得蛮有意思的。特别是,有时候人工智能想要展现模型的动态进化的效果。就需要这样的工具了。(要是有别的目的也是ok的)

这种方法是可以将一些图片组合起来生成gif图。

  • 我之前写的这篇文章就实现了这个。
  • 基于MNIST的GANs实现【Pytorch】

文章目录

  • 简述
    • 核心代码
    • 实例

核心代码

  • 先把数据都放到一个目录下(最好是脚本自己创建一个,然后用完再删除掉

  • 创建目录的步骤(如果你想手动设置的话,跳过)但是库还是需要导入

import os import shutil import imageio PNGFILE = './png/' if not os.path.exists(PNGFILE):os.mkdir(PNGFILE) else:shutil.rmtree(PNGFILE)os.mkdir(PNGFILE)
  • 如果要不删掉文件夹,就把注释掉shutil.rmtree的代码
generated_images = [] for png_path in filePath:generated_images.append(imageio.imread(png_path)) shutil.rmtree(PNGFILE) # 可删掉 imageio.mimsave('gan-mnist.gif', generated_images, 'GIF', duration=0.1)
  • duration = 0.1 这个是设置每幅图停留的时间的

实例

  • path 输入的是文件夹地址(文件夹内有图片)
  • img_type:图片类似(png,jpg)但是都要小写
  • sort = ‘n’ 表示,根据图片的文件名中的数字大小排序
  • 当然也可以用自己定义的排序函数(rexp)
import imageio import os import glob import redef images2gif(input_path, output_name, img_type='png', duration=0.2, sort='n', rexp=None):input_files = os.path.join(input_path, "*.%s" % img_type)# print(input_files)# sort or notfile_list = glob.glob(input_files)if rexp:file_list = sorted(file_list, key=rexp)elif sort in ['number', 'num', 'n']:file_list = sorted(file_list, key=lambda x: int(re.search("[0-9]+", x).group()))generated_images = []for name in file_list:# print(name)generated_images.append(imageio.imread(name))imageio.mimsave(output_name, generated_images, 'GIF', duration=duration)if __name__ == '__main__':path = '.'f = lambda x: int(re.search("[0-9]+", x).group())images2gif(input_path=path, output_name='test.gif', rexp=f)

总结

以上是生活随笔为你收集整理的python生成gif【简明教程】的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。