龙空技术网

使用Python+imageio将照片制作为GIF动画

AI智媒体 515

前言:

今天我们对“python中image的用法”可能比较珍视,小伙伴们都想要学习一些“python中image的用法”的相关内容。那么小编同时在网络上网罗了一些关于“python中image的用法””的相关资讯,希望小伙伴们能喜欢,你们一起来了解一下吧!

导读:阅读本文,你将学会如何使用Python语言和imageio模块,只需10行左右代码,将大小、格式完全相同的照片制作为GIF动画。

GIF动画能够表达丰富有趣的信息,因此在许多场合得到了广泛的应用。你有没有想过将自己喜欢的照片制作为GIF动画,供朋友们欣赏呢?本文介绍如何使用Python编写10行左右的代码,制作心仪的GIF动画。

一、为什么推荐使用Python制作GIF?

GIF的制作工具有很多。在此,推荐使用Python编程语言和imageio模块来将照片制作为GIF动画。其优点在于编程具有极大的灵活性:1. 能够处理相同大小、不同大小的照片;2. 能够调节播放速度;3. 能够压缩或放大图片,控制图片的大小;4. 你甚至能够为自己制作的GIF打上水印。总之使用Python制作GIF非常灵活方便,而需要编写的代码又很简短。

二、推荐使用Anaconda Python

关于编程工具,推荐使用Anaconda Python. 它集成了许多常用的库,当然包括制作GIF用的imageio模块。用户不必另行安装,非常方便初学者使用。如果你还没使用过Anaconda Python,请到本号的免费专栏Anaconda Python的安装和使用,了解它的使用方法,不难噢。

三、准备工作

要制作GIF,首先要有2张以上的照片。你可以使用自己拍摄的照片,或者网上下载的照片,也可以从视频中提取帧。关于如何从视频中提取帧,以后会专门撰文说明。

你手头的照片大小和格式可能不同,首先要将它们转换成相同的格式。这里我们使用jpg格式。许多情况下你手里的照片大小并不相同,除非是从视频里提取的帧,或者照片太大,这都需要调整照片的大小。

本文先假定你手里的照片大小、格式都相同,要制作为的GIF也不需要对图片进行压缩。至于其它各种复杂情况,以后再撰文说明如何处理。将照片放到一个文件夹里,按照你希望的播放顺序将各张照片按升序命名。另外再建立一个文件夹,用来存放制作好的GIF文件。然后就可以编写程序,逐个读取照片制作为GIF。

四、GIF制作思路

首先要导入os模块,用于获取指定文件夹下所有文件的名字;导入imageio模块,用于读取图片,并将它们制作为GIF。

然后,使用os.listdir()方法来获取指定路径下所有图片的名字列表。

第三步,创建一个初始化为空的列表,用于保存读取的每张图片。

第四步,创建一个循环体,遍历图片名字列表,拼出每张照片的全路径名称,使用imageio.imread()方法读取每张照片,并使用append()方法将其添加到图片列表中,直至所有图片读取并添加到图片列表完毕。

第五步,使用mimsave()方法将图片列表保存为GIF。mimsave()方法主要有4个参数,第1个参数是要保存的GIF文件全路径名称,包括后缀名.gif;第2个参数是图片列表;第3个参数是保存类型,设置为字符串'GIF';第4个参数为每张图片播放持续时间,单位为秒。

五、示例源代码

将相同大小、格式的照片制作为GIF动画的示例源代码如下。

import os,imageiopath_source='.../images/'  #源图片保存文件夹path_dest='.../gif/'             #GIF文件要保存到的文件夹source_file_list = os.listdir(path_source)  #读取文件夹下所有图片名称frames = []                         #用于保存帧的列表for file in source_file_list:    full_name=path_source+file           #拼出照片的全路径名称    frame=imageio.imread(full_name) #读取照片    frames.append(frame)                    #将照片添加到列表       #duration:单帧持续时间,单位simageio.mimsave(path_dest+'mygif.gif', frames, 'GIF', duration=0.5) #保存GIF文件

制作的GIF效果如下图所示。

要想调整播放速度,可以改变duration参数的值。

以上代码只用了10行(其实可以更短),就可以把多张照片制作为GIF,是不是非常简单?赶快拍摄或下载一些照片练习一下,制作一个自己的GIF吧。

关于如何将不同大小的照片、压缩照片,制作为GIF,甚至制作为视频,请继续关注本号的后续文章。欢迎转发评论,有任何问题请在评论区留言。

标签: #python中image的用法