2013-01-24 75 views
0

我想把自己的图像放在画布的背景中。 我做了这个代码:Image in canvas backgroud,Python

size = (800,600) 
im = Image.new('RGB',size) 
pix = im.load() 
for i in range(size[0]): 
    for j in range(size[1]): 
     pix[i,j] = (100,100,100) 
im.save('ima5.png') 

im2 = ImageTk.PhotoImage(im) 

canvas = Tkinter.Canvas(width=Width, height=Height, bg=im2) 

我有此错误:_tkinter.TclError: unknown color name "pyimage1",我知道这是为什么图像没有被帆布期望的格式。 因此,任何人都知道如何将im2作为画布的背景?

回答

1

bg/background属性需要一种颜色,而不是图像。要使用图片作为背景,请使用画布的create_image方法:

import Image, ImageTk, Tkinter 

im = ImageTk.PhotoImage(Image.open("<path\\to\\image.jpg-ect>").resize((800,600))) 
canvas = Tkinter.Canvas(Parent, width=WIDTH, height=HEIGHT) 
canvas.pack() #place(), etc. 
Canvas_Image = canvas.create_image(0,0 image=im, anchor="nw") 
+0

正是Mr. Oakley .. :) –