一、简介

  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动图的更多相关文章

  1. PS制作gif动图以及背景透明与消除残影

    摘要: 用Photoshop制作gif动画的要点:在窗口菜单中找到“时间轴”选中打开时间轴,单击一帧,设置该帧显示持续时间在图层里将该帧要显示的图层显示,并将不该显示的层隐藏,新建一帧,接下来就是重复 ...

  2. 利用compass制作雪碧图

    compass是什么?是sass一款神奇插件,具体教程,我还是推荐阮一峰sass,compass教程,简单清晰明了. 用ps制作雪碧图,工作效率太低了.用compass来制作,方便很多.下图的用com ...

  3. 【Python】利用python自动发送邮件

    前言 在训练网络的过程中,需要大量的时间,虽然可以预估网络训练完成时间,但蹲点看结果着实有点不太聪明的亚子. 因此,参照师兄之前发的python利用smtp自动发邮件的代码,我作了些调整,并参照网上的 ...

  4. Python 绘图与可视化 matplotlib 制作Gif动图

    参考链接:https://blog.csdn.net/theonegis/article/details/51037850 官方文档:https://matplotlib.org/3.1.0/api/ ...

  5. python笔记 利用python 自动生成条形码 二维码

    1. ean13标准条形码 from pystrich.ean13 import EAN13Encoder encode = EAN13Encoder(') encode.save('d:/barco ...

  6. python的matplotlib的热门可视化动图

    1.图 2.代码 import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import matplot ...

  7. loading图片制作(没有设计师的情况下,前端同学自己制作loading动图)

    svg  css  gif   http://loading.io/

  8. 快速制作gif动图

    0.环境准备 gif动画录制工具,下载后可以直接安装: 安装提示需要.net framework4.0.30319环境的话,下载一个直接安装即可 1.开始录制 安装成功界面: 开始录制: 录制效果如下 ...

  9. PS制作gif动图教程

    之前做过一些动图,时间久了就忘记了,每次心血来潮想做的时候又要重新找资料,网上的教程都不够完整,因此整理了一份完整的教程,针对PS新手(对,没错,就是博主自己哈哈). 准备工作:photoshop.图 ...

随机推荐

  1. Redis项目实战,一些经验总结

    来源:https://my.oschina.net/u/920698/blog/3031587 背景 Redis 是一个开源的内存数据结构存储系统. 可以作为数据库.缓存和消息中间件使用. 支持多种类 ...

  2. js数据处理-----数据拷贝

    一.理解深拷贝与浅拷贝 如下代码,把 a  的值赋给  b ,修改 b 的值会直接修改到  a 的值,这叫浅拷贝.(其实他们修改的是同一个对象) var a = [1,2,3,4,5]; var b ...

  3. [Fw] assembly code in gas syntax

    Address operand syntax There are up to 4 parameters of an address operand that are presented in the ...

  4. ant打包遇到的问题

    \build\build.xml:350: Problem: failed to create task or type foreach Cause: The name is undefined. A ...

  5. MVC通过重写OnActionExecuting获取控制器,方法和域

    一,如下代码 protected override void OnActionExecuting(ActionExecutingContext filterContext) {string _cont ...

  6. postman使用之四:设置读取变量和切换环境

    postman提供了environment管理功能,想要在多个环境中测试,比如在测试环境.灰度环境.生产环境等,只需要用同样的接口,切换下环境即可,非常方便.具体步骤: 设置环境变量  1.点击man ...

  7. go语言从例子开始之Example1.helloworld

    Example: package main import "fmt" func main() { fmt.Println("hello world") } Re ...

  8. ivew Upload 上传时附带的额外参数

    <Upload action="/api/device/importData" :data="uploadData" :before-upload=&qu ...

  9. Bootstrap 小功能

    <div class="container"> <div class="navbar-header"> <button type= ...

  10. 关于python接口测试connect error

    接口测试里如果报错出现 socket.gaierror: [Errno 8] nodename nor servname provided, or not known 或者 urllib3.excep ...