Moviepy模块之多图拼接为一个动图
文章目录
前言
大家好,我是空空star,本篇给大家分享一下Moviepy模块之多图拼接为一个动图。
本篇使用的moviepy版本如下:
Name: moviepy
Version: 1.0.3
项目场景
使用moviepy将多个图片做成一个动图。
项目素材
1.jpg
2.jpg
3.jpg
项目代码
1. 引入库
from moviepy.editor import ImageSequenceClip
import os
2. 读取存储图片的文件夹
image_folder = '/Users/kkstar/Downloads/video/pic/'
3. 获取文件夹中所有的.jpg结尾的图片文件名
images = [img for img in os.listdir(image_folder) if img.endswith('.jpg')]
4. 按照文件名排序
images.sort(key=lambda x: int(x.split('.')[0]))
5. 读取所有图片并拼接成动图
clip = ImageSequenceClip([os.path.join(image_folder, img) for img in images], fps=1)
6. 保存动图
clip.write_gif(image_folder+"output.gif")
问题描述
运行报错:
Exception: Moviepy: ImageSequenceClip requires all images to be the same size
原因分析
ImageSequenceClip要求所有的图像都具有相同的尺寸,但是在导入图像时可能出现尺寸不一致的情况,导致无法创建ImageSequenceClip。
解决方案
将所有的图像都调整到相同的尺寸后再导入。
最终效果