文/IT可达鸭

图/IT可达鸭、网络

前言

最近在写技术文档的时候,发现一个问题。对于每个技术步骤,都需要一个截图,这样下来整篇文档都是截图,显得不是特别的专业。

为了解决这个问题,我想到一个方法,就是把技术文档中,每个模块系列截图生成一个动态GIF,这样就可以节省大量的篇幅,而且显得有技术水平一些。

举个例子:我们要在pycharm中安装一个python包,就可以按照以下的步骤去做。

是不是非常方便?这里我把源码分享给大家,来,上代码。

  • 环境配置

python版本: 3.6.0

编辑器: pycharm

项目所需要的环境安装包

pip install imageio

第一步:导包

imageio:这个第三方库可以导入很多格式类型的照片,然后又可以将其导出成各种格式的照片,非常好用。

os:目录操作、路径操作、文件操作的包。

# encoding:utf-8import imageioimport os

第二步:生成GIF的函数

create_gif 函数,根据输入的图片文件路径,按顺序生成GIF。其中duration接收的参数单位是秒,也就是动图中每一帧的显示时间。

def create_gif(image_list, gif_name, duration = 1.0):    '''    生成GIF    :param image_list:     :param gif_name:     :param duration:     :return:     '''    frames = []    for image_name in image_list:        frames.append(imageio.imread(image_name))    imageio.mimsave(gif_name, frames, 'GIF', duration=duration)    return

第三步:获取所有的图片

get_all_all_file: 获取指定文件夹下的所有图片文件,这里只获取目录的第一层文件,并且按文件名进行排序。如果想递归获取可以参考之前的文章《用python给女朋友画张素描,网友:程序员有女朋友?》里面有介绍如何递归获取文件。

def get_all_file(file_dir, tail_list=('.jpg', '.png', '.jpeg')):    """    获取所有的文件名    :param file_dir:    指定目录    :param tail_list:   指定文件类型(后缀名)    :return:     """    file_list = []    for root, dirs, files in os.walk(file_dir):        for file in files:            for tail in tail_list:                if file.endswith(tail):                    file_list.append(os.path.join(root, file))                    break    file_list.sort() # 排序    return file_list

第四步:主函数

确定好原始图片存放的目录,以及生成的gif存放的目录位置,设置每张图片展示的时间。

if __name__ == '__main__':    # 指定输入目录, 与输出目录    input_dir, output_dir = 'data', 'output'    # 每张图片停留的时间(秒)    duration = 1.5    file_list = get_all_file(input_dir)    create_gif(file_list, os.path.join(output_dir, 'result.gif'), duration

结语

代码量不多,这就是python,有人喜欢它的简洁,有人喜欢它便捷。不可否认的是,现在连小学都开设python课程了。当然,python 也有它的弊端,它做不了大型高并发的后端,但是,对于人工智能的开发,python有它独特的优势。


如果有疑问想获取源码,可以关注后,在后台私信我,回复:python动图。 我把源码发你。持续关注"IT可达鸭"每天除了分享有趣Python源码,还会介绍NLP算法。最后,感谢大家的阅读,祝大家工作生活愉快!

python有趣的简单代码_简单代码一学就会,Python生成GIF动图相关推荐

  1. python的简单程序代码_怎么样都要学几个python的简单小程序

    虹之菌BUG之前在学Python的时候,参考书上或网上的代码写了几个小程序,发出来算个学习笔记,也请朋友们帮着给找找代码中错误和不严谨的地方. 一.一个简单的下载程序 用过Curl后觉得它的下载功能很 ...

  2. python怎么变成动图_教你用 Python 生成 GIF 动图 !

    最近啊 ,微信订阅号改变频繁 ,很多读者后台说 :小詹啊 ,我总是容易错过你公号的消息 ,现在没有置顶功能很难过啊 ! 不止你们难过 ,订阅号的作者恐怕更难过 !现在人人公众号时代 ,大家关注的公众号 ...

  3. Python生成gif动图

    Python生成gif动图 调用一个 python 库 imageio 可以轻松实现该功能 安装 pip/pip3 install imageio 步骤 读取静态图到列表中 ,作为 GIF 动图的每一 ...

  4. Python生成 gif 动图

    遍历文件夹下所有文件生成gif动图 文件按数字大小的顺序生成gif动图 pip install imageio fps参数越大播放的速率越大,fps越小播放的速度越慢 # This Python fi ...

  5. python遥感影像分类代码_【博客翻译】使用 Python Tensorflow 实现简单的神经网络卫星遥感影像分类...

    Landsat 5 多光谱数据分类指导手册原作者:Pratyush Tripathy 翻译:荆雪涵 姐妹篇雪涵:[博客翻译]CNN 与中分辨率遥感影像分类​zhuanlan.zhihu.com 深度学 ...

  6. python的gif为正方形_简单代码一学就会,Python生成GIF动图

    文/IT可达鸭 图/IT可达鸭.网络 前言 最近在写技术文档的时候,发现一个问题.对于每个技术步骤,都需要一个截图,这样下来整篇文档都是截图,显得不是特别的专业. 为了解决这个问题,我想到一个方法,就 ...

  7. 最简单的图形用户代码_简单几句代码,画出精美的图形,快跟着学起来~

    去年暑假实习了四个月的前端,接触了很多前端相关的东西,觉得前端真的比后端有趣多了啊,又好玩又有趣,相比后端千篇一律的代码,前端的千变万化一瞬间俘获了我的心~~~~~ 下面列举一些基础的前端图形制作代码 ...

  8. 简单好玩的编程代码_简单好玩的编程代码游戏

    regaddHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run/vaaa/tREG_SZ/d%0/f---此句是来说往注册 ...

  9. java幻灯片播放代码_简单常用的幻灯片播放实现代码

    幻灯片自动播放图片是当前网站比较流行的一个展示方式.在网上我们能找到各种特效丰富的幻灯片插件和代码.这里项目需要,我自己做了一个简单的,就不详细讲解了,代码很简单.直接看效果图和代码吧. 所有代码 p ...

最新文章

  1. 【跃迁之路】【724天】程序员高效学习方法论探索系列(实验阶段481-2019.2.14)...
  2. 二进制数代替数组做标记
  3. NFS服务器是什么?(Network File System 网络文件系统)(远程主机间 mount 挂载目录)(ubuntu:nfs-kernel-server)
  4. MFC动态链接库的制作步骤和使用方法
  5. 四种可变交流swap方法
  6. 怎样为ubuntu eclipse 添加 GBK字符集
  7. bundlefusion论文阅读笔记
  8. 不同层次程序员的比较:三流比设计,一流比方法,顶级比什么?
  9. NOI2004 郁闷的出纳员 splay
  10. mysql数据库事务实现方式_mysql事务的实现原理
  11. 【随笔】TongWeb 常见报错
  12. 解析纯真ip数据库php源码, 纯真数据库IP地理位置查询类
  13. easyx——c语言实时动画时钟
  14. 好用的电台APP推荐|这些年,陪伴我上下班的声音
  15. 基于聚类的个性化推荐电商案例分析总结
  16. Xmind进阶教程:配色指南
  17. Android不同屏幕适配的大神解决方案(转)
  18. python计算对数收益率_为VNPY的K线序列管理工具ArrayManager增加对数收益率队列
  19. Babylon.js 深入
  20. 实验24:超声波测距仪小实验

热门文章

  1. SecureCRT-SecureCRT如何保存界面的日志信息
  2. 【Spark】扩展Spark Catalyst,打造自定义的Spark SQL引擎
  3. 封装性的基本使用练习2
  4. linux实验报告makefile,linux实验二交叉编译和Makefile实验报告.doc
  5. go java nodejs 速度对比_除了node.js,Java、Python、Go 哪个适合web前端工程师
  6. 关于零拷贝技术,你了解多少?
  7. Latex数学符号对应表
  8. 离散数学知识点总结-命题逻辑
  9. leetcode题解151-翻转字符串里的单词
  10. Spring框架----Spring的依赖注入