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()