Python:PNG图像生成MP4

Python:PNG图像生成MP4

需求

需要将多张*.PNG图像,生成mp4格式的视频文件。

实现

利用Python中image库生成*.gif格式图像,但是图片未经压缩,文件体量较大。

moviepy库将*.gif格式图像转换为*.mp4格式视频文件,文件可以压缩90%。

easygui库制作一个简单的GUI界面。

清华大学Python镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/

代码

import imageio as ig
import os
import moviepy.editor as mp
import easygui as g

def create_gif(source, name, duration):
    #  生成gif的函数,原始图片仅支持png
    #  source: 为png图片列表(排好序)
    #  name :生成的文件名称
    #  duration: 每张图片之间的时间间隔
    frames = []  # 读入缓冲区
    length = len(source)
    order = 0
    for img in source:
        frames.append(ig.imread(img))
        if order % 10 == 0:
            print("读取图片中。。。%s/%s" % (order, length))
        order += 1
    ig.mimsave(name, frames, 'GIF', duration=duration)
    print('已完成')

if __name__ == '__main__':
    path_pic=g.diropenbox(msg='选择图片文件夹')
    os.chdir(path_pic)
    source_list = os.listdir(path='.')
    piclist=g.multchoicebox(msg='选择图片', title=' ', choices=source_list)
    name=g.enterbox(msg='输出MP4文件名',default='movie')

    create_gif(piclist, name, 0.05)
	
    #*.gif 转 *.mp4
    clip = mp.VideoFileClip(name)
    clip.write_videofile(name + '.mp4')
    
    #删除*.gif
    os.remove(name) 

    g.msgbox(msg='输出文件成功!!!', title=' ', ok_button='结束', image=None, root=None)
posted @ 2021-09-20 15:19  陈橙橙  阅读(2665)  评论(0编辑  收藏  举报