实用的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.图 ...
随机推荐
- Select.snippet
<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http:/ ...
- maxim - Android UI压力测试
项目介绍 项目地址:https://github.com/zhangzhao4444/Maxim 与monkey对比优势: 快 稳:只进行有意义的操作,防误点状态栏,不会乱断网.卸载应用 支持脱机运行 ...
- 一 shell编程
好啦.从今天开始我们转入shell编程的行列.从鸟哥私房菜中,已经学到了一些shell编程的皮毛,这两个月打算系统的学习,学会,学熟练.加油吧 bash shell [root@localhost s ...
- Nginx详细安装部署教程(转)
一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二.Nginx安装 1.下载N ...
- Codeforces 1183H DP 计算子序列数目
题意及思路:https://blog.csdn.net/mmk27_word/article/details/93999633 第一次见这种DP,有点像退背包的思想,如果发现有可能因为字母相同和前面算 ...
- HashMap不能使用基本数据类型作为key
HashMap存储元素采用的是hash表存储数据,每存储一个对象的时候,都会调用其hashCode()方法,算出其hash值,如果相同,则认为是相同的数据,直接不存储,如果hash值不同,则再调用其e ...
- Qt QSS图片样式切割,三种状态normal,hover,pressed
要切割的样式图片如下: pix_Button->setStyleSheet("QPushButton{ border-image:url(:/image/MyButtonimage/m ...
- 【leetcode】998. Maximum Binary Tree II
题目如下: We are given the root node of a maximum tree: a tree where every node has a value greater than ...
- 【leetcode】929. Unique Email Addresses
题目如下: Every email consists of a local name and a domain name, separated by the @ sign. For example, ...
- MariaDB 插入查询
在本章中,我们将学习如何在表中插入数据. 将数据插入表需要INSERT命令. 该命令的一般语法是INSERT,后跟表名,字段和值. 查看下面给出的一般语法 - INSERT INTO tablenam ...