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根据你输入的参数截屏
然后文件保存
甲鱼哥给过不?我能力是真的有限,我真比不了这里的任何人,要我编写,就只能这个
高阶的图形化程序,啥按钮,啥指定地点保存,咱是真做不到,我就是一个混娱乐圈的(吹水格),没啥本事,ε=(´ο`*)))唉
|