feat: 添加视频处理相关脚本
- 新增 VideoZip.py: 实现了一个简单的图形界面,用于选择文件夹并进行视频转换 - 新增 compress.py: 包含视频转换和文件列表获取功能 - 新增 video_image.py: 实现了视频截图和视频转换功能 - 在 .gitignore 中添加 .DS_Store 文件忽略项
This commit is contained in:
66
VideoZip.py
Normal file
66
VideoZip.py
Normal file
@@ -0,0 +1,66 @@
|
||||
from tkinter import *
|
||||
from tkinter import ttk, filedialog, messagebox
|
||||
|
||||
import os
|
||||
import re
|
||||
import subprocess as sp
|
||||
import sys
|
||||
|
||||
|
||||
# 使用原生的Tk替代TkinterDnD的Tk
|
||||
root = Tk()
|
||||
frm = ttk.Frame(root, padding=10)
|
||||
frm.grid()
|
||||
|
||||
folder_path = ''
|
||||
# 1. 拖拽事件触发区域(改为文件夹选择按钮)
|
||||
def select_folder():
|
||||
global folder_path
|
||||
folder_path = filedialog.askdirectory()
|
||||
if folder_path:
|
||||
path_listbox.insert(END, folder_path)
|
||||
log_text.insert(END, f"添加文件夹: {folder_path}\n")
|
||||
|
||||
folder_button = ttk.Button(frm, text="选择文件夹", command=select_folder)
|
||||
folder_button.grid(column=0, row=0, columnspan=3)
|
||||
|
||||
# 2. 文件和文件夹路径的列表
|
||||
path_listbox = Listbox(frm, height=10, width=50)
|
||||
path_listbox.grid(column=0, row=1, columnspan=3)
|
||||
|
||||
# 3. 进度条
|
||||
progress = ttk.Progressbar(frm, orient=HORIZONTAL, length=400, mode='determinate')
|
||||
progress.grid(column=0, row=2, columnspan=3)
|
||||
|
||||
# 4. 日志输出窗口
|
||||
log_text = Text(frm, height=10, width=50)
|
||||
log_text.grid(column=0, row=3, columnspan=3)
|
||||
|
||||
|
||||
def start_conversion():
|
||||
# 开始转换的逻辑
|
||||
log_text.insert(END, "开始转换...\n")
|
||||
progress['value'] = 0
|
||||
for i in range(100):
|
||||
progress['value'] += 1
|
||||
root.update_idletasks()
|
||||
time.sleep(0.05) # 模拟转换进度
|
||||
log_text.insert(END, "转换完成\n")
|
||||
|
||||
global folder_path
|
||||
list = os.listdir(folder_path) # 列出文件夹下所有的目录与文件
|
||||
for i in range(0, len(list)):
|
||||
print("----------------------------")
|
||||
path = os.path.join(args[1], list[i])
|
||||
if os.path.isfile(path):
|
||||
print("FileName: " + list[i])
|
||||
matcher1 = re.search(pattern2, list[i])
|
||||
if matcher1 != None:
|
||||
# get_image_from_video(args[1], list[i])
|
||||
conver_video(args[1], list[i])
|
||||
|
||||
# 5. 按钮
|
||||
ttk.Button(frm, text="开始转换", command=start_conversion).grid(column=1, row=4)
|
||||
ttk.Button(frm, text="关闭", command=root.destroy).grid(column=2, row=4)
|
||||
|
||||
root.mainloop()
|
||||
Reference in New Issue
Block a user