使用Python生成视频封面图像 - 窗口化界面
要将代码修改为窗口化,你可以使用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函数来生成封面图像,并在窗口中显示处理完成的信息。
请确保已安装tkinter和moviepy库,并将代码中的'指定文件夹的路径'替换为你想要处理的目标文件夹的实际路径。运行代码后,将会弹出一个窗口,在窗口中输入目标文件夹的路径,点击“生成封面图像”按钮即可开始生成封面图像。生成的图像将保存在原始MP4文件所在的文件夹中,并在窗口中显示处理完成的信息。
原文地址: https://www.cveoy.top/t/topic/bSUB 著作权归作者所有。请勿转载和采集!