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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM