目前我的程序将打开一个图像,使用该图像你可以点击它的任何地方,它会返回你点击位置的像素坐标。从这些坐标中,您可以输入一些文本,它会向您显示编辑后的图像。然而,我想知道是否有一种方法可以在视觉上帮助用户向他们显示他们点击的位置。这是我当前用于打开图像并单击它以返回坐标的代码。我正在使用 tkinter,我知道我应该从 tkinter import * 中退出,但现在为时已晚:/。
### 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
千巷猫影
相关分类