2017-04-14 37 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() 

如果这不起作用尝试加入一个参考