简单代码一学就会,Python生成GIF动图

文/IT可达鸭

图/IT可达鸭、网络

前言

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

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


简单代码一学就会,Python生成GIF动图


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

简单代码一学就会,Python生成GIF动图

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

  • 环境配置

python版本: 3.6.0

编辑器: pycharm

项目所需要的环境安装包

<code>

pip

install imageio/<code>

第一步:导包

简单代码一学就会,Python生成GIF动图

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

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


<code># encoding:utf-

8

import

imageio

import

os/<code>

第二步:生成GIF的函数

简单代码一学就会,Python生成GIF动图

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

<code>

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

/<code>

第三步:获取所有的图片

简单代码一学就会,Python生成GIF动图

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

<code>

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/<code>

第四步:主函数


简单代码一学就会,Python生成GIF动图

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

<code>

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/<code>

结语

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

如果有疑问想获取源码,可以关注后,在后台私信我,回复:python动图。 我把源码发你。持续关注"

IT可达鸭"每天除了分享有趣Python源码,还会介绍NLP算法。最后,感谢大家的阅读,祝大家工作生活愉快!


分享到:


相關文章: