В настоящее время моя программа открывает изображение, и с помощью этого изображения вы можете щелкнуть в любом месте на нем, и оно вернет координаты пикселей того места, где вы щелкнули. И по этим координатам вы можете ввести текст, и он вернет вам отредактированное изображение. Тем не менее, мне было интересно, есть ли способ, который был бы визуально полезен для пользователя, показывая им, где они нажимали. Вот мой текущий код для открытия изображения и щелчка по нему, чтобы вернуть координаты. Я использую tkinter и знаю, что мне следовало отказаться от импорта tkinter *, но сейчас уже слишком поздно: /.
### Function to open files ###
img_window = tkinter.PanedWindow(top, orient='vertical')
def file_opener():
global actual_img
global original_img
top.filename = filedialog.askopenfilename(initialdir="*/Images/", title ="Select an Image", filetypes=((".png", "*.png"),(".jpg", "*.jpg")))
original_img = Image.open(top.filename)
#################### CLICK LOCATION OF WHERE YOU WANT TO ADD TEXT ####################
event2canvas = lambda e, c: (c.canvasx(e.x), c.canvasy(e.y))
imgApp = tkinter.Toplevel()
# creating an img var of my original image
img = ImageTk.PhotoImage(original_img)
#setting up a tkinter canvas with scrollbars
frame = tkinter.Frame(imgApp, bd=2, relief=tkinter.SUNKEN)
frame.grid_rowconfigure(0, weight=1)
frame.grid_columnconfigure(0, weight=1)
xscroll = tkinter.Scrollbar(frame, orient=tkinter.HORIZONTAL)
xscroll.grid(row=1, column=0, sticky=tkinter.E+tkinter.W)
yscroll = tkinter.Scrollbar(frame)
yscroll.grid(row=0, column=1, sticky=tkinter.N+tkinter.S)
canvas = tkinter.Canvas(frame, bd=0, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set, width = img.width(), height = img.height())
canvas.grid(row=0, column=0, sticky=tkinter.N+tkinter.S+tkinter.E+tkinter.W)
xscroll.config(command=canvas.xview)
yscroll.config(command=canvas.yview)
frame.pack(fill=tkinter.BOTH, expand = 1)
# adding the image to canvas
canvas.create_image(0,0,image=img,anchor="nw")
canvas.config(scrollregion=canvas.bbox(tkinter.ALL))
#function to be called when mouse is clicked
def returncoords(event):
global cx, cy
#outputting x and y coords to console
cx, cy = event2canvas(event, canvas)
return cx, cy
#mouseclick event
canvas.bind("<ButtonPress-1>", returncoords)
# canvas.bind("<ButtonRelease-1>", returncoords)
imgApp.title("Please select an area on Image")
imgApp.config(bg="red")
imgApp.mainloop()