广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于Python实现合并多张图片转成mp4视频
  • 782
分享到

基于Python实现合并多张图片转成mp4视频

Python合并图片转成视频Python合并图片Python图片转视频 2023-05-15 05:05:47 782人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录前言一、需要调入的模块1、imageio模块2、Image 模块二、实现合并多张图片转成 mp4 视频三、优化改进一下总结前言 随着现代科技飞速发展和人们提升视觉上体验,利用图片

前言

随着现代科技飞速发展和人们提升视觉上体验,利用图片生成视频的方法,确实为工作或者提升生活体验感做了很多成功案例:

1、简单的幻灯片演示,如展示旅游照片、产品展示等;

2、改编图片动画,如口红试色、时尚大片中的效果;

3、制作日记式的视频内容,将一段长时间内的照片串在一起,如婚礼纪实、Baby成长记录等;

4、制作信息图表,如将各种数据图表整合在一起以便展示和诠释数据。

以上只是一些普遍运用的例子,实际上还有更广泛的使用场景,取决于制作者的目的和创意。

下面咱们用python代码实现多张图片合成MP4视频为实例,做下详细代码讲解。

一、需要调入的模块

1、imageio模块

Python模块imageio是一个用于读取和写入图像及视频数据的库。它支持多种格式,并且可以使用NumPy数组进行操作。

以下是一些关键的函数:

  • imageio.imread():从文件中读取图像数据并返回一个NumPy数组。
  • imageio.imwrite():将一个NumPy数组写入到文件。
  • imageio.mimsave():将多个图像帧组成的列表保存为动画文件(例如GIF)。
  • imageio.get_reader():获取一个对象,该对象用于逐帧读取给定文件中的动画图像。
  • imageio.get_writer():获取一个对象,该对象用于逐帧写入动画图像到指定文件中。

使用这些函数,可以方便地读取、写入和处理各种图像及视频数据格式。

2、Image 模块

PIL 是 Python 中常用的图像处理库,Image 模块是其中的一个重要模块,它提供了各种图像操作和处理的函数。

以下是 Image 模块中一些主要函数及其作用:

  • open(): 打开并返回指定文件路径的图像对象。
  • fromarray(): 将 numpy 数组或 PIL 图像对象转换为 PIL 图像对象。
  • new(): 创建一个新的指定大小、模式和颜色的空白图像对象。
  • save(): 将图像保存为指定格式的文件。
  • resize(): 修改图像的大小。
  • crop(): 裁剪图像的指定区域。
  • rotate(): 旋转图像指定角度。
  • show(): 显示图像。

除此之外,还有很多其他常用的函数,例如调整亮度和对比度、应用滤镜等等。这些函数可以帮助我们实现各种复杂的图像处理任务,并且通常也会有一些参数可用于进一步调节函数的行为,具体使用时可以参考相关文档。

二、实现合并多张图片转成 mp4 视频

使用 Python 中的画图库 PIL(Python Imaging Library)或者 OpenCV 读取每一张图片。

使用第三方库 imageio 将多张图片合并成一个视频文件。

配置生成视频文件的视频帧数、视频尺寸和视频播放速度等参数。

以下是一个简单的示例代码:

import os
import imageio
from PIL import Image

# 设置生成的视频文件名和路径
filename = 'output.mp4'
filepath = os.path.join(os.getcwd(), filename)

# 读取所有 PNG 图片
images = []
for file_name in sorted(os.listdir()):
    if file_name.endswith('.png'):
        images.append(Image.open(file_name))

# 将图片转换为视频
fps = 30  # 每秒钟30帧
with imageio.get_writer(filepath, fps=fps) as video:
    for image in images:
        frame = image.convert('RGB')
        video.append_data(frame)

实现原理,读取所有需要合并的图片文件,将它们存储到一个列表中。然后使用 imageio 库的 get_writer() 函数创建一个视频写入器对象,并设置视频的播放速度(fps)。之后在循环过程中,读取列表中的每一张图片,在将其转换为带有 RGB 颜色模式的格式后添加到视频帧中。最终输出一个合并了所有目标图片的视频文件。

三、优化改进一下

将程序并行化进行处理,加快处理多张图片的速度。注:以下方法可能并非最优方法

import os
import concurrent.futures
import imageio
from PIL import Image

# 设置生成的视频文件名和路径
filename = "output.mp4"
filepath = os.path.join(os.getcwd(), filename)


def process_image(file_name):
    if file_name.endswith(".png"):
        image = Image.open(file_name)
    return image.convert("RGB")


with concurrent.futures.ThreadPoolExecutor() as executor:
    # 寻找所有 png 文件
    image_files = [file for file in os.listdir() if file.endswith(".png")]

    # 利用线程池并行处理图像
    images = list(executor.map(process_image, image_files))


# 将图片转换为视频文件
fps = 30  # 每秒钟30帧
with imageio.get_writer(filepath, fps=fps) as video:
    for image in images:
        video.append_data(image)

这里使用 concurrent.futures 库中的 ThreadPoolExecutor 对象进行并行处理。首先在主线程中寻找读取当前工作目录下的所有需要合并的 PNG 图片,创建任务列表。然后将任务提交给线程池中并保证能够快速、异步地处理目标文件。在处理完所有 PNG 图片之后,将其存储到一个 images 中的列表中并最后转换成视频。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了python代码实现图片转成视频的使用,而imageio中提供了大量能使我们快速便捷地处理数据的函数和方法。

注意,由于 GIL 的存在,Python 的多线程并不总能带来真正的性能提升。如果性能是关键,请考虑使用更优秀的 Python 解释器、使用类似 joblib 的库以及使用其他语言编写多线程实现。

到此这篇关于基于Python实现合并多张图片转成mp4视频的文章就介绍到这了,更多相关Python合并图片转成视频内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 基于Python实现合并多张图片转成mp4视频

本文链接: https://www.lsjlt.com/news/208428.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于Python实现合并多张图片转成mp4视频
    目录前言一、需要调入的模块1、imageio模块2、Image 模块二、实现合并多张图片转成 mp4 视频三、优化改进一下总结前言 随着现代科技飞速发展和人们提升视觉上体验,利用图片...
    99+
    2023-05-15
    Python合并图片转成视频 Python合并图片 Python 图片转视频
  • 基于Python如何实现合并多张图片转成mp4视频
    这篇文章主要介绍“基于Python如何实现合并多张图片转成mp4视频”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python如何实现合并多张图片转成mp4视频”文章能帮助大家解决问题。一、需要...
    99+
    2023-07-06
  • 基于Python怎么实现合并多张图片转成mp4视频
    一、需要调入的模块1、imageio模块Python模块imageio是一个用于读取和写入图像及视频数据的库。它支持多种格式,并且可以使用NumPy数组进行操作。以下是一些关键的函数:imageio.imread():从文件中读取图像数据并...
    99+
    2023-05-15
    Python
  • Python如何实现合并多张图片成视频
    本篇内容介绍了“Python如何实现合并多张图片成视频”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!合并多张图片到视频的方法说明除了使用 O...
    99+
    2023-07-05
  • Python实现合并多张图片成视频的示例详解
    目录合并多张图片到视频的方法说明moviepy 将多张图片合成视频导入所需模块创建 ImageSequenceClip 对象保存视频moviepy 合成多张图片更多配置名词解释FFm...
    99+
    2023-02-01
    Python合并图片成视频 Python合并图片 Python 图片 视频
  • Python实现将多张图片合成视频并加入背景音乐
    实现的思路:将准备好的图片通过opencv读取出来,并将其设置好帧数等参数后合成为无声视频。 最后通过moviepy编辑视频将背景音乐加入到视频中。 开始之前还是需要说明一下非标...
    99+
    2022-11-10
  • Python怎么实现将多张图片合成视频并加入背景音乐
    这篇文章主要介绍“Python怎么实现将多张图片合成视频并加入背景音乐”,在日常操作中,相信很多人在Python怎么实现将多张图片合成视频并加入背景音乐问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Pytho...
    99+
    2023-06-30
  • Python实现视频分解成图片+图片合成视频
    目录一、python视频拆分+图片合成(源码一)1.python视频拆分2.python图片合成二、python视频拆分+图片合成(源码二)三、python视频拆分(源码三)一、py...
    99+
    2022-11-13
  • Python多个MP4合成视频的实现方法
    目录开始安装使用一、安装 Python二、安装 moviepy三、安装 ffmpeg四、开始写拼接脚本五、等待运行完毕, 完结撒花 🎉六、补充内容开始安装使用 主要是利用 moviepy 这个库, ...
    99+
    2022-06-02
    Python MP4合成视频 Python 合成视频
  • 怎么用Python实现多个MP4合成视频
    这篇文章主要介绍“怎么用Python实现多个MP4合成视频”,在日常操作中,相信很多人在怎么用Python实现多个MP4合成视频问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python实现多个MP4合...
    99+
    2023-06-20
  • Python实现多张图片合成一张马赛克图片
    目录前言开发环境实现代码先导入所需模块读取图片文件读取所有源图片并计算对应颜色平均值合法图像列表平均颜色列表遍历主函数模块调用执行完整效果前言 最近有网友私信我,问如何把多张图片合成...
    99+
    2022-11-12
  • Python怎么实现视频分解成图片及图片合成视频
    这篇文章主要介绍了Python怎么实现视频分解成图片及图片合成视频的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现视频分解成图片及图片合成视频文章都会有所收获,下面我们一起来看看吧。一、pyt...
    99+
    2023-06-29
  • Python如何实现多张图片合成一张马赛克图片
    这篇文章将为大家详细讲解有关Python如何实现多张图片合成一张马赛克图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。图片素材4K高清原图开发环境Python 3.6Pycharm实现代码先导入所需模块...
    99+
    2023-06-22
  • Python实现合成多张图片到PDF格式
    目录1.准备2.合成原理3.多张照片合成PDF在日常生活中,经常会遇到需要提交身份证正反面证明资料的情况,而且这些网站大部分只接受pdf格式,这时候我们就需要把身份证正反面两张图片合...
    99+
    2022-11-13
  • 详解python实现多张多格式图片转PDF并打包成exe
    目录转PDF初始代码转PDF最终代码GUI界面设计代码打包成可执行文件完整代码附录转PDF初始代码 从文件夹中读取图片数据,然后将他们保存为PDF格式。 不长,大概10行代码。 f...
    99+
    2023-01-05
    python图片格式转PDF打包exe python图片转PDF
  • Python实现多张图片合成文字的效果
    目录前言一、图片批量下载1.下载图片2.检测图片数量3.查找相似图片二、图片马赛克1.使用photomosaic库实现图片马赛克2.计算颜色相似度实现图片马赛克前言 前段时间看到有人...
    99+
    2022-11-11
  • js使用Canvas将多张图片合并成一张的实现代码
    解决方案 function mergeImgs(list) { const imgDom = document.createElement('img') document.b...
    99+
    2022-11-12
  • 基于Python实现批量缩放图片(视频)尺寸
    目录方法一方法二方法三方法四(FFmpeg)方法一 在 Pillow 中,resize() 方法会强制将图片缩放到指定的大小,可能会导致图片变形或失真;而 thumbnail() 方...
    99+
    2023-03-24
    Python缩放图片尺寸 Python缩放视频尺寸 Python缩放尺寸
  • Python如何实现多张图片合成文字的效果
    本篇内容主要讲解“Python如何实现多张图片合成文字的效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何实现多张图片合成文字的效果”吧!一、图片批量下载首先我们需要从百度下载大...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作