ScreenCut/main.py
2025-01-15 20:08:02 +08:00

126 lines
4.2 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 pinPicture
from PIL import Image
import tkinter as tk
import pyautogui
import keyboard
def capture_screen():
screenshot = pyautogui.screenshot()
root = tk.Tk()
image = screenshot.convert('RGBA')
pin = pinPicture.PinPicture(image, root)
root.mainloop()
# 监听特定快捷键这里假设是Ctrl+Alt+S
keyboard.add_hotkey('F7', capture_screen)
# 保持程序运行,持续监听快捷键
keyboard.wait()
#
# from tkinter import Tk, Frame, Canvas, Button
# from tkinter.colorchooser import askcolor
#
#
# class Application(Frame):
# def __init__(self, master=None):
# super().__init__(master)
# self.master = master
# self.pack()
# self.createWidget()
# self.x = 0
# self.y = 0
# self.lastDraw = 0 # 最后绘制的图形id
# self.startDrawFlag = False
# self.fgcolor = "red"
#
# def createWidget(self):
# # 创建绘图区
# self.drawPad = Canvas(root, width=900, height=500, bg="black")
# self.drawPad.pack()
#
# # 画图软件的各种按钮
# btn_pen = Button(self, text="画笔", name="pen")
# btn_pen.pack(side="left", padx="10")
# btn_rect = Button(self, text="矩形", name="rect")
# btn_rect.pack(side="left", padx="10")
# btn_clear = Button(self, text="清屏", name="clear")
# btn_clear.pack(side="left", padx="10")
# btn_erasor = Button(self, text="橡皮擦", name="erasor")
# btn_erasor.pack(side="left", padx="10")
# btn_line = Button(self, text="直线", name="line")
# btn_line.pack(side="left", padx="10")
# btn_lineArrow = Button(self, text="箭头直线", name="lineArrow")
# btn_lineArrow.pack(side="left", padx="10")
# btn_color = Button(self, text="颜色", name="color")
# btn_color.pack(side="left", padx="10")
#
# # 为所有button绑定事件
# btn_pen.bind_class("Button", "<1>", self.eventManage)
# self.drawPad.bind("<ButtonRelease-1>", self.stopDraw)
#
# def stopDraw(self, event):
# self.startDrawFlag = False
# self.lastDraw = 0
#
# def startDraw(self, event):
# self.drawPad.delete(self.lastDraw)
# if not self.startDrawFlag:
# self.startDrawFlag = True
# self.x = event.x
# self.y = event.y
#
# def eventManage(self, event):
# name = event.widget.winfo_name()
# print(name)
# if name == "line":
# self.drawPad.bind("<B1-Motion>", self.myline)
# elif name == "lineArrow":
# self.drawPad.bind("<B1-Motion>", self.mylineArrow)
# elif name == "rect":
# self.drawPad.bind("<B1-Motion>", self.myRect)
# elif name == "pen":
# self.drawPad.bind("<B1-Motion>", self.myPen)
# elif name == "erasor":
# self.drawPad.bind("<B1-Motion>", self.myErasor)
# elif name == "clear":
# self.drawPad.delete("all")
# elif name == "color":
# c = askcolor(color=self.fgcolor, title="选择画笔颜色")
# self.fgcolor = c[1]
#
# def myline(self, event):
# self.startDraw(event)
# self.lastDraw = self.drawPad.create_line(self.x, self.y, event.x, event.y, fill=self.fgcolor)
#
# def mylineArrow(self, event):
# self.startDraw(event)
# self.lastDraw = self.drawPad.create_line(self.x, self.y, event.x, event.y, arrow=LAST, fill=self.fgcolor)
#
# def myRect(self, event):
# self.startDraw(event)
# self.lastDraw = self.drawPad.create_rectangle(self.x, self.y, event.x, event.y, outline=self.fgcolor)
#
# def myPen(self, event):
# self.startDraw(event)
# self.drawPad.create_line(self.x, self.y, event.x, event.y, fill=self.fgcolor)
# self.x = event.x
# self.y = event.y
#
# def myErasor(self, event):
# self.startDraw(event)
# self.drawPad.create_rectangle(event.x - 3, event.y - 3, event.x + 3, event.y + 3, fill="black")
# self.x = event.x
# self.y = event.y
#
#
# if __name__ == '__main__':
# root = Tk()
# root.geometry("900x500+200+200")
# root.title("画图软件")
# app = Application(master=root)
# root.mainloop()