|
发表于 2023-8-3 19:16:47
|
显示全部楼层
- import tkinter as tk
- from tkinter import messagebox
- from PIL import ImageGrab
- class ScreenshotApp:
- def __init__(self, root):
- self.root = root
- self.root.title("截图程序")
- self.root.geometry("300x200")
-
- self.create_widgets()
- def create_widgets(self):
- tk.Label(self.root, text="截图程序", font=("Helvetica", 16)).pack(pady=10)
-
- tk.Button(self.root, text="全屏截图", command=self.fullscreen_screenshot).pack(pady=5)
-
- tk.Label(self.root, text="指定尺寸截图", font=("Helvetica", 12)).pack()
- self.x_entry = tk.Entry(self.root)
- self.x_entry.pack(pady=5)
- self.y_entry = tk.Entry(self.root)
- self.y_entry.pack(pady=5)
- self.width_entry = tk.Entry(self.root)
- self.width_entry.pack(pady=5)
- self.height_entry = tk.Entry(self.root)
- self.height_entry.pack(pady=5)
- tk.Button(self.root, text="截图", command=self.custom_screenshot).pack(pady=5)
-
- tk.Label(self.root, text="滚动截图", font=("Helvetica", 12)).pack()
- self.scroll_x_entry = tk.Entry(self.root)
- self.scroll_x_entry.pack(pady=5)
- self.scroll_y_entry = tk.Entry(self.root)
- self.scroll_y_entry.pack(pady=5)
- self.scroll_distance_entry = tk.Entry(self.root)
- self.scroll_distance_entry.pack(pady=5)
- tk.Button(self.root, text="滚动截图", command=self.scroll_screenshot).pack(pady=5)
- def fullscreen_screenshot(self):
- screenshot = ImageGrab.grab()
- screenshot.save("fullscreen_screenshot.png")
- messagebox.showinfo("提示", "全屏截图已保存为fullscreen_screenshot.png")
- def custom_screenshot(self):
- try:
- x = int(self.x_entry.get())
- y = int(self.y_entry.get())
- width = int(self.width_entry.get())
- height = int(self.height_entry.get())
- screenshot = ImageGrab.grab(bbox=(x, y, x + width, y + height))
- screenshot.save("custom_screenshot.png")
- messagebox.showinfo("提示", "指定尺寸截图已保存为custom_screenshot.png")
- except ValueError:
- messagebox.showerror("错误", "请输入有效的整数")
- def scroll_screenshot(self):
- try:
- x = int(self.scroll_x_entry.get())
- y = int(self.scroll_y_entry.get())
- distance = int(self.scroll_distance_entry.get())
- # Perform multiple screenshots and combine them vertically
- screenshots = []
- current_y = y
- while current_y < y + distance:
- screenshot = ImageGrab.grab(bbox=(x, current_y, x + 800, current_y + 600))
- screenshots.append(screenshot)
- current_y += 600
- final_screenshot = Image.new("RGB", (800, distance))
- y_offset = 0
- for screenshot in screenshots:
- final_screenshot.paste(screenshot, (0, y_offset))
- y_offset += screenshot.height
- final_screenshot.save("scroll_screenshot.png")
- messagebox.showinfo("提示", "滚动截图已保存为scroll_screenshot.png")
- except ValueError:
- messagebox.showerror("错误", "请输入有效的整数")
- if __name__ == "__main__":
- root = tk.Tk()
- app = ScreenshotApp(root)
- root.mainloop()
复制代码 我编写的是一个比较简单的Tkinter,根据要求
可以选择全屏截图、指定尺寸截图和滚动截图
但是需要手动输入参数,得先手动输入一下截屏参数,然后程序会调用ImageGrab根据你输入的参数截屏
然后文件保存
甲鱼哥给过不?我能力是真的有限,我真比不了这里的任何人,要我编写,就只能这个
高阶的图形化程序,啥按钮,啥指定地点保存,咱是真做不到,我就是一个混娱乐圈的(吹水格),没啥本事,ε=(´ο`*)))唉
|
|