要将代码修改为窗口化,你可以使用tkinter库来创建一个简单的GUI窗口。以下是修改后的代码:

import os
from tkinter import Tk, Button, Label, Entry
from moviepy.editor import *

def generate_video_cover(folder_path):
    # 遍历文件夹内所有文件
    for filename in os.listdir(folder_path):
        if filename.endswith('.mp4'):
            # 获取MP4文件的完整路径
            video_path = os.path.join(folder_path, filename)

            # 从MP4文件中提取文件名(不含扩展名)
            file_name = os.path.splitext(filename)[0]

            # 使用MoviePy库读取视频文件
            video = VideoFileClip(video_path)

            # 提取视频的第一帧作为封面图像
            frame = video.get_frame(0)

            # 生成封面图像的文件路径
            cover_path = os.path.join(folder_path, f'{file_name}.jpg')

            # 保存封面图像为JPG文件
            result = ImageClip(frame)
            result.save_frame(cover_path)

            print(f'已生成封面图像:{cover_path}')

def generate_button_clicked():
    # 获取输入的文件夹路径
    folder_path = folder_path_entry.get()

    # 生成视频封面图像
    generate_video_cover(folder_path)

    # 显示处理完成的标签
    status_label.config(text='处理完成!')

# 创建窗口
window = Tk()
window.title('生成封面图像')
window.geometry('300x150')

# 创建文件夹路径输入框
folder_path_label = Label(window, text='文件夹路径:')
folder_path_label.pack()

folder_path_entry = Entry(window, width=30)
folder_path_entry.pack()

# 创建生成按钮
generate_button = Button(window, text='生成封面图像', command=generate_button_clicked)
generate_button.pack()

# 创建状态标签
status_label = Label(window, text='')
status_label.pack()

# 运行窗口
window.mainloop()

代码中使用了tkinter库来创建窗口和按钮,以及处理按钮点击事件。当点击“生成封面图像”按钮时,代码将调用generate_video_cover函数来生成封面图像,并在窗口中显示处理完成的信息。

请确保已安装tkintermoviepy库,并将代码中的'指定文件夹的路径'替换为你想要处理的目标文件夹的实际路径。运行代码后,将会弹出一个窗口,在窗口中输入目标文件夹的路径,点击“生成封面图像”按钮即可开始生成封面图像。生成的图像将保存在原始MP4文件所在的文件夹中,并在窗口中显示处理完成的信息。

使用Python生成视频封面图像 - 窗口化界面

原文地址: https://www.cveoy.top/t/topic/bSUB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录