美文网首页
学姐生日快到了~这不得用Python把她的照片做成视频当礼物送给

学姐生日快到了~这不得用Python把她的照片做成视频当礼物送给

作者: 颜狗一只 | 来源:发表于2023-05-31 16:54 被阅读0次

前言

这不是学姐生日快到了,于是我学了一手Python~

来把学姐的照片生成为视频,到时候给她一个惊喜!

好了先不说了,下面分享一下用python代码

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

一、需要调入的模块

1. imageio模块

Python模块imageio是一个用于读取和写入图像及视频数据的库。

它支持多种格式,并且可以使用NumPy数组进行操作。

2、Image 模块

PIL 是 Python 中常用的图像处理库,Image 模块是其中的一个重要模块,

它提供了各种图像操作和处理的函数。

二、实现合并多张图片转成 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 中的列表中并最后转换成视频。

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

相关文章

  • 礼物

    那天同学丹丹收到了快递,问是不是我寄给她的,我看了一下照片,果真是我寄给她的礼物。 我告诉她,是送给她的生日礼物。...

  • 礼物

    礼物分很多种类,有生日礼物、新年礼物、还有大人们的贺喜礼物。这不,母亲节到了,我一定要送给妈妈一份母亲节礼物。 我...

  • 拖延症

    送给女友的生日礼物 她生日了,总想着送些什么才好,想着想着便想多了,索性把我和她的点点滴滴写下来送给她。我知道我有...

  • 与儿子分离的那些日子

    刚才跟奔奔视频,奔奔说,妈妈,我过生日的时候你要给全班同学买礼物,还要买粘土送给老师。 我问他,送给哪位老师? 她...

  • 【0805晨读感悟】练出好身材的秘密

    前一阵好友过生日,在朋友圈晒出一张马甲线的照片,说是送给自己的生日礼物。瞬间觉得她的这个礼物酷毙了,逼格高的不要不...

  • 10分钟创意视频极速教程

    送给你的礼物-时光纪念 当时给她做了一个视频感动到哭 她说: "这是我,收到最惊喜最好的生日礼物,谢谢你" 然后成...

  • 朋友过生日

    下午一点的时候让我去她家过生日,我到了发现都是我们班的。 在到送礼物的时候我们把自己送给她的礼物藏起来,我藏的是...

  • 石头画:萌妹子

    这是送给大侄女的生日礼物,画的是她的头像。

  • 视频照片合成软件哪个好?快速把手机照片做成视频,简单操作,效果精

    视频照片合成软件哪个好?怎么把照片合成视频?如何快速把手机照片做成视频? 这是我用数码大师把手机照片合成视频的效果...

  • 我能活的那么好,全靠我妈抠门。

    我妈快生日了,昨天给她视频,问她想要什么生日礼物。前20分钟我两一直在打“拉锯战”。她一直说自己不用什么礼物,让我...

网友评论

      本文标题:学姐生日快到了~这不得用Python把她的照片做成视频当礼物送给

      本文链接:https://www.haomeiwen.com/subject/kauyedtx.html