实用的Python(2)利用Python制作gif动图
一、简介
moviepy是一个专门用于视频剪辑制作的模块,可以自动化完成很多繁琐的视频剪辑处理工作,除了处理视频数据之外,moviepy中还内置了可以制作gif动图的功能,通过使用moviepy.editor中的ImageSequenceClip,可以以自动化的方式批量生成指定参数要求的gif动图,本文就将针对ImageSequenceClip的使用展开介绍。
二、利用ImageSequenceClip()合成动图
ImageSequenceClip()中的主要参数如下:
sequence:这个参数控制用于制作gif动图的图片,有三种传入形式:
1、传入字符串:当传入字符串时,这个字符串表示的是存放指定一系列图片的文件夹(只能存在所需图片文件)路径
2、传入列表:当传入列表时,这个列表按顺序存放制作动图所需的图片文件名称
3、传入元素为numpy数组的列表:这种方式下所传入列表中每个元素是对应一张图片的numpy数组,不太推荐这种方式是因为需要将所需图片共同读入内存中,对于所需图片数量较多的时候对内存可能会造成一定的压力
fps:这个参数用于控制gif动图的帧率,譬如传入fps=1时表示每秒切换一张动图
下面我们通过一个完整的例子来进行演示,首先我们新建一个文件夹并在里面放入一张空白图片seed.png,接下来我们利用PIL中的ImageDraw向空白图像上绘制数字:
from PIL import ImageFont,Image,ImageDraw
import os os.chdir(r'C:\Users\hp\Desktop\gif示例') #设置字体和字号大小
font = ImageFont.truetype('simhei.ttf',200) for idx in tqdm_notebook([i for i in range(1,11)][::-1]): im1=Image.open('seed.png') #在图片上添加文字
draw = ImageDraw.Draw(im1)
draw.text((200,150),str(idx),(0,0,0),font) draw = ImageDraw.Draw(im1) #保存图片
im1.save('./imgs/'+str(idx)+".png")
得到如下图片:

接下来我们来制作一个简单的倒计时gif:
from moviepy.editor import ImageSequenceClip
img_names = ['./imgs/'+str(i)+'.png' for i in range(1,11)]
img_names.reverse()
clip = ImageSequenceClip(img_names,fps=1)
clip.write_gif('demo.gif')
效果如下:

以上就是本文的全部内容,如有笔误望指出!
实用的Python(2)利用Python制作gif动图的更多相关文章
- PS制作gif动图以及背景透明与消除残影
摘要: 用Photoshop制作gif动画的要点:在窗口菜单中找到“时间轴”选中打开时间轴,单击一帧,设置该帧显示持续时间在图层里将该帧要显示的图层显示,并将不该显示的层隐藏,新建一帧,接下来就是重复 ...
- 利用compass制作雪碧图
compass是什么?是sass一款神奇插件,具体教程,我还是推荐阮一峰sass,compass教程,简单清晰明了. 用ps制作雪碧图,工作效率太低了.用compass来制作,方便很多.下图的用com ...
- 【Python】利用python自动发送邮件
前言 在训练网络的过程中,需要大量的时间,虽然可以预估网络训练完成时间,但蹲点看结果着实有点不太聪明的亚子. 因此,参照师兄之前发的python利用smtp自动发邮件的代码,我作了些调整,并参照网上的 ...
- Python 绘图与可视化 matplotlib 制作Gif动图
参考链接:https://blog.csdn.net/theonegis/article/details/51037850 官方文档:https://matplotlib.org/3.1.0/api/ ...
- python笔记 利用python 自动生成条形码 二维码
1. ean13标准条形码 from pystrich.ean13 import EAN13Encoder encode = EAN13Encoder(') encode.save('d:/barco ...
- python的matplotlib的热门可视化动图
1.图 2.代码 import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import matplot ...
- loading图片制作(没有设计师的情况下,前端同学自己制作loading动图)
svg css gif http://loading.io/
- 快速制作gif动图
0.环境准备 gif动画录制工具,下载后可以直接安装: 安装提示需要.net framework4.0.30319环境的话,下载一个直接安装即可 1.开始录制 安装成功界面: 开始录制: 录制效果如下 ...
- PS制作gif动图教程
之前做过一些动图,时间久了就忘记了,每次心血来潮想做的时候又要重新找资料,网上的教程都不够完整,因此整理了一份完整的教程,针对PS新手(对,没错,就是博主自己哈哈). 准备工作:photoshop.图 ...
随机推荐
- 在Python中写入文件时,权限被拒绝错误
我想创建一个文件并在python中写一些整数数据.例如,我有一个变量abc = 3,我试图将它写入一个文件(它不存在,我假设python将自己创建): fout = open("newfil ...
- 【数据驱动】python之mysql的操作
1.准备工作 在本篇中,我们使用python版本为python3.7.在python3中,连接mysql数据库我们需要使用pymysql这个第三方库.我们可以直接使用pip命令来安装,安装的命令为: ...
- 查看x86主機是否支援64bit in Linux
$cat /proc/cpuinfo 查看flags 欄位中是否有 lm (long mode)
- 【转】vim 配置文件 ,高亮+自动缩进+行号+折叠+优化
将一下代码copy到 用户目录下 新建文件为 .vimrc保存即可生效: 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份) "===================== ...
- unity3D中的Input按键方法检测
一,按键的按下抬起等识别方法 void Update () { ; ; if (Input.GetKeyDown (KeyCode.A)) { Debug.Log("A按下一次") ...
- Codeforces The Child and Toy
The Child and Toy time limit per test1 second On Children's Day, the child got a toy from Delayyy as ...
- JavaWeb的几种设计模式
原文:http://blog.csdn.net/yue7603835/article/details/7479855 Java Web开发方案有多种可供选择,这里列举一些经典的开发模式进行横向比较,为 ...
- 更改mysql最大连接数
方法一: 打开cmd,用"mysql -u root -p;"命令进入mysql, 输入命令:show variables like "max_connections&q ...
- 修改TOMCAT服务的端口
1.进入tomcat配置文件的目录 [root@db200 conf]# cd /usr/local/tocat8/conf/ 2.打开配置文件 vim server.xml 找到Connector ...
- 项目使用gulp的配置编译sass笔记
Node环境 通过 node.js 网站下载了安装包进行安装 node.js, npm也会一起安装 node --version # 查看node.js版本 npm --version #查看npm版 ...