Python 在tkinter中的图像上绘制线

Python 在tkinter中的图像上绘制线,python,tkinter,python-3.4,tkinter-canvas,Python,Tkinter,Python 3.4,Tkinter Canvas,我正在尝试制作一个脚本,它将在python GUI中的图像上绘制线条。我已经能够在GUI上获得图像,但不知道如何绘制额外的线条。脚本应该能够循环,这样我就可以画更多的线 到目前为止,我所拥有的: import tkinter as Tk root = Tk.Tk() background_image=Tk.PhotoImage(file="map.png") background_label = Tk.Label(root, image=background_image) background

我正在尝试制作一个脚本,它将在python GUI中的图像上绘制线条。我已经能够在GUI上获得图像,但不知道如何绘制额外的线条。脚本应该能够循环,这样我就可以画更多的线

到目前为止,我所拥有的:

import tkinter as Tk

root = Tk.Tk()
background_image=Tk.PhotoImage(file="map.png")
background_label = Tk.Label(root, image=background_image)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
root.wm_geometry("794x370")
root.title('Map')
root.mainloop()

您可以先将图像放置在画布上:

import tkinter as Tk

root = Tk.Tk()
canvas = Tk.Canvas(root)
background_image=Tk.PhotoImage(file="map.png")
canvas.pack(fill=Tk.BOTH, expand=1) # Stretch canvas to root window size.
image = canvas.create_image(0, 0, anchor=Tk.NW, image=background_image)
line = canvas.create_line(10, 10, 100, 35, fill="red")
root.wm_geometry("794x370")
root.title('Map')
root.mainloop()

您可以先将图像放置在画布上:

import tkinter as Tk

root = Tk.Tk()
canvas = Tk.Canvas(root)
background_image=Tk.PhotoImage(file="map.png")
canvas.pack(fill=Tk.BOTH, expand=1) # Stretch canvas to root window size.
image = canvas.create_image(0, 0, anchor=Tk.NW, image=background_image)
line = canvas.create_line(10, 10, 100, 35, fill="red")
root.wm_geometry("794x370")
root.title('Map')
root.mainloop()

请注意,这将失败,因为Tkinter.PhotoImage无法处理png。使用GIF,效果很好。@IngemarRagnemalm对于Tk 8.5的Tkinter来说,这是正确的。与Tk 8.6一起使用时,Tkinter支持开箱即用的PNG。请注意,这将失败,因为Tkinter.PhotoImage无法处理PNG。使用GIF,效果很好。@IngemarRagnemalm对于Tk 8.5的Tkinter来说,这是正确的。与Tk 8.6一起使用时,Tkinter支持开箱即用的PNG。