2017-04-14 34 views
0
from Tkinter import * 
frame = Tk() 
frame.geometry("1200x900") 

w = Canvas(frame,width=250,height=450) 
w.place(x=30,y=300) 

img=PhotoImage(file="card2.ppm") 
w.create_image(100,100,anchor=NW,image=img) 

frame.mainloop() 

回答

0

的光象類可以從文件中讀取GIF和PGM/PPM圖片:

photo = PhotoImage(file="image.gif") 

photo = PhotoImage(file="lenna.pgm") 

PhotoImage還可以從字符串中讀取base64編碼的GIF文件。您可以使用此嵌入在Python源代碼的圖像(使用功能的base64模塊中的二進制數據轉換成base64編碼字符串):

photo = """ 
R0lGODdhEAAQAIcAAAAAAAEBAQICAgMDAwQEBAUFBQY GBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4O 
    Dg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZ  GRoaGhsbGxwcHB0dHR4eHh8fHyAgICEh 

...

AfjHtq1bAP/i/gPwry4AAP/yAtj77x+Af4ABAwDwrzAAAP8S 
    A /j3DwCAfwAA/JsM4J/lfwD+/QMA 
4B8AAP9Ci/4HoLTpfwD+qV4NoHVAADs= 
""" 

photo = PhotoImage(data=photo) 

如果您需要與其他格式的文件工作,Python圖像庫(PIL)包含的類,讓您加載超過30格式的圖像,並將它們轉換成Tkinter的兼容圖像對象:

from PIL import Image, ImageTk 

image = Image.open("lenna.jpg") 
photo = ImageTk.PhotoImage(image) 

可以使用PhotoImage實例無處不在Tkinter接受一個圖像對象。舉個例子:

label = Label(image=photo) 
label.image = photo # keep a reference! 
label.pack() 

你必須保持你的Python程序到圖像對象的引用,或者通過將其存儲在一個全局變量,或將其連接到另一個對象。

嘗試運行:

import Tkinter as tk 
root = tk.Tk() 
root.title("display a website image") 
photo = tk.PhotoImage(file= 
r "C:\Some\Local\location\smile.ppm") 
cv = tk.Canvas() 
cv.pack(side='top', fill='both', expand='yes') 
cv.create_image(10, 10, image=photo, anchor='nw') 
root.mainloop() 

如果這不起作用嘗試加入一個參考