from tkinter import * from tkinter import messagebox from tkinter import filedialog from PIL import ImageGrab def locate(event): global x global y x = event.x y = event.y def draw(event): canvas.create_line(x, y, event.x, event.y, fill="black", width=3) locate(event) def get_img(event): x1 = root.winfo_rootx() + widget.winfo_x() y1 = root.winfo_rooty() + widget.winfo_y() x2 = x + widget.winfo_width() y2 = y + widget.winfo_height() ImageGrab.grab().crop((x1,y1,x2,y2)).save("file.png") #Windows only def maximize(event): root.attributes("-fullscreen", True) root.bind("", minimize) def minimize(event): root.attributes("-fullscreen", False) root.bind("", maximize) root = Tk() root.geometry("600x480") menu = Menu(root) canvas = Canvas(root, cursor="cross") root.bind("", maximize) canvas.bind("", locate) canvas.bind("", draw) root.bind("", get_img) if __name__ == '__main__': canvas.pack(fill="both", expand=True) root.config(menu=menu) root.mainloop()