Compare commits

...

3 Commits

44
gui.py
View File

@ -140,22 +140,6 @@ class VideoToGifConverter:
self.duration_entry.pack(side="left", padx=5) self.duration_entry.pack(side="left", padx=5)
ttk.Label(duration_frame, text="(留空表示全部)").pack(side="left", padx=5) ttk.Label(duration_frame, text="(留空表示全部)").pack(side="left", padx=5)
# 质量设置
quality_frame = ttk.Frame(self.settings_frame)
quality_frame.pack(fill="x", padx=5, pady=5)
ttk.Label(quality_frame, text="质量设置:").pack(side="left", padx=5)
self.quality_var = tk.StringVar(value="medium")
ttk.Radiobutton(
quality_frame, text="高质量", variable=self.quality_var, value="high"
).pack(side="left", padx=5)
ttk.Radiobutton(
quality_frame, text="中等", variable=self.quality_var, value="medium"
).pack(side="left", padx=5)
ttk.Radiobutton(
quality_frame, text="低质量", variable=self.quality_var, value="low"
).pack(side="left", padx=5)
# 输出设置 # 输出设置
output_frame = ttk.Frame(self.settings_frame) output_frame = ttk.Frame(self.settings_frame)
output_frame.pack(fill="x", padx=5, pady=5) output_frame.pack(fill="x", padx=5, pady=5)
@ -220,16 +204,6 @@ class VideoToGifConverter:
for file in files: for file in files:
self.files_list.insert(tk.END, file) self.files_list.insert(tk.END, file)
def get_quality_settings(self):
"""根据质量设置返回 FFmpeg 参数"""
quality = self.quality_var.get()
if quality == "high":
return ["-quality", "100"]
elif quality == "medium":
return ["-quality", "75"]
else:
return ["-quality", "50"]
def validate_inputs(self): def validate_inputs(self):
"""验证输入参数""" """验证输入参数"""
try: try:
@ -356,12 +330,7 @@ class VideoToGifConverter:
_, stderr = process.communicate() _, stderr = process.communicate()
if process.returncode != 0: if process.returncode != 0:
error_output = "" raise RuntimeError(f"调色板生成失败: {stderr.decode()}")
try:
error_output = stderr.decode("utf-8", errors="replace")
except Exception:
error_output = str(stderr) # Fallback to raw string representation
raise RuntimeError(f"调色板生成失败: {error_output}")
# 更新状态显示 # 更新状态显示
self.status_label.config( self.status_label.config(
@ -381,10 +350,6 @@ class VideoToGifConverter:
if duration: if duration:
gif_cmd.extend(["-t", str(float(duration))]) gif_cmd.extend(["-t", str(float(duration))])
# 获取并添加质量设置
quality_settings = self.get_quality_settings()
gif_cmd.extend(quality_settings)
gif_cmd.extend( gif_cmd.extend(
[ [
"-i", "-i",
@ -413,12 +378,7 @@ class VideoToGifConverter:
_, stderr = process.communicate() _, stderr = process.communicate()
if process.returncode != 0: if process.returncode != 0:
error_output = "" raise RuntimeError(f"GIF生成失败: {stderr.decode()}")
try:
error_output = stderr.decode("utf-8", errors="replace")
except Exception:
error_output = str(stderr) # Fallback to raw string representation
raise RuntimeError(f"GIF生成失败: {error_output}")
# 删除临时调色板文件 # 删除临时调色板文件
if os.path.exists(palette_path): if os.path.exists(palette_path):