2016-07-22 2 views
1

Я хочу показать изображение и нарисовать на нем систему координат (x-ax, y-ax). я могу показать изображениеКак нарисовать систему координат поверх изображения с помощью tkinter?

img = ImageTk.PhotoImage(Image.open(path).resize((400,400),Image.ANTIALIAS)) 
panel = tk.Label(root,image = img, width = 400, height = 400s) 
panel.pack(size= "bottom", fill = "both", expand = "yes") 
panel.place(rely = 073, rely = 0.5s) 

Я также могу нарисовать линию для й-ах/у-ах (это было бы еще лучше, если вы знаете способ, чтобы нарисовать вспышку вместо строки)

canvas = Canvas(root) 
canvas.create_line(x0,y0,x1,y1) 
canvas.pack() 

Что я не могу сделать, это Поместите эту строку в начало изображения. Я попытался использовать canvas.place(), но когда я положил его поверх изображения, я больше не вижу изображение. Есть ли способ сделать холст прозрачным? Или есть что-то еще, что я могу сделать? Я новичок в Tkinter.

Спасибо.

EDIT: видимо, это не возможно сделать холст прозрачного Transparent canvas in tkinter python

Но я могу добавить фоновое изображение на холсте, а затем провести линию, так что я могу видеть, как?

+1

В вашем коде есть ошибки. –

ответ

3

Вы должны поместить изображение на холсте, а затем положить линии оси на нем:

import Tkinter as tk 
from PIL import Image, ImageTk 

root = tk.Tk() 

img_path = 'water-drop-splash.png' 
img = ImageTk.PhotoImage(Image.open(img_path).resize((400,400), Image.ANTIALIAS)) 

canvas = tk.Canvas(root, height=400, width=400) 
canvas.create_image(200, 200, image=img) 
canvas.create_line(0, 200, 399, 200, dash=(2,2)) # x-axis 
canvas.create_line(200, 0, 200, 399, dash=(2,2)) # y-axis 
canvas.pack() 

root.mainloop() 

Та-да!

screenshot of tkinter window displaying image and axes

Смежные вопросы