实用的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')
效果如下:
以上就是本文的全部内容,如有笔误望指出!
作者:Feffery
出处:https://www.cnblogs.com/feffery/p/11310410.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?