Moviepy模块之多图拼接为一个动图

文章目录

  • 前言
  • 项目场景
  • 项目素材
    • 1.jpg
    • 2.jpg
    • 3.jpg
  • 项目代码
    • 1. 引入库
    • 2. 读取存储图片的文件夹
    • 3. 获取文件夹中所有的.jpg结尾的图片文件名
    • 4. 按照文件名排序
    • 5. 读取所有图片并拼接成动图
    • 6. 保存动图
  • 问题描述
  • 原因分析
  • 解决方案
  • 最终效果

前言

大家好,我是空空star,本篇给大家分享一下Moviepy模块之多图拼接为一个动图。
本篇使用的moviepy版本如下:
Name: moviepy
Version: 1.0.3

项目场景

使用moviepy将多个图片做成一个动图。


项目素材

1.jpg

Moviepy模块之多图拼接为一个动图_第1张图片

2.jpg

Moviepy模块之多图拼接为一个动图_第2张图片

3.jpg

Moviepy模块之多图拼接为一个动图_第3张图片

项目代码

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。


解决方案

将所有的图像都调整到相同的尺寸后再导入。


最终效果


你可能感兴趣的:(音视频,音视频,python)