acdr/acdr-ui/tootls/gif制作脚本.py

46 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import tkinter as tk
from tkinter import filedialog, messagebox
from PIL import Image
class GIFMakerApp:
def __init__(self, root):
self.root = root
self.root.title("GIF Maker")
# 选择图片按钮
self.select_button = tk.Button(root, text="选择图片", command=self.select_images)
self.select_button.pack(pady=10)
# 保存 GIF 按钮
self.save_button = tk.Button(root, text="保存 GIF", command=self.save_gif, state=tk.DISABLED)
self.save_button.pack(pady=10)
self.images = [] # 保存选择的图片
def select_images(self):
# 选择多张图片
image_paths = filedialog.askopenfilenames(title="选择图片", filetypes=[("Image files", "*.jpg;*.png;*.jpeg;*.bmp"), ("All files", "*.*")])
if image_paths:
self.images = [Image.open(image_path) for image_path in image_paths] # 打开所有选择的图片
messagebox.showinfo("已选择图片", f"已选择 {len(self.images)} 张图片")
self.save_button.config(state=tk.NORMAL) # 启用保存按钮
def save_gif(self):
if not self.images:
messagebox.showwarning("警告", "没有选择图片!")
return
# 设置保存文件名
save_path = filedialog.asksaveasfilename(defaultextension=".gif", filetypes=[("GIF files", "*.gif")])
if save_path:
# 保存为GIF指定每帧的时间间隔
self.images[0].save(save_path, save_all=True, append_images=self.images[1:], duration=10, loop=0)
messagebox.showinfo("成功", f"GIF 已保存到: {save_path}")
# 启动 GUI 应用
if __name__ == "__main__":
root = tk.Tk()
app = GIFMakerApp(root)
root.geometry("300x200")
root.mainloop()