6

我在这里创建一个Tkinter Canvas小部件,然后在其中嵌入一个图像。在Python中创建空白图像(允许逐像素操作)

import Tkinter 
from PIL import ImageTk, Image 


class image_manip(Tkinter.Tk): 

    def __init__(self): 
     Tkinter.Tk.__init__(self) 

     self.configure(bg='red') 

     self.ImbImage = Tkinter.Canvas(self, highlightthickness=0, bd=0, bg='blue') 
     self.ImbImage.pack() 

     self.i = ImageTk.PhotoImage(Image.open(r'test.png')) 
     self.ImbImage.create_image(150, 100, image=self.i) 


def run(): 
    image_manip().mainloop() 
if __name__ == "__main__": 
    run() 

我希望能够在画布组件中创建一个空白图像,这样我就可以在小部件中像素处理做像素。怎么会这样呢?

+0

做完全按照您在http://stackoverflow.com/questions/4847706/using-pils-imagedraw-module正在做同样的事情,除了使用`Image.new`代替`Image.open`。 – misha 2011-01-31 05:19:45

+0

我的回答有帮助吗? – Paul 2011-02-05 19:09:59

回答

12

要创建一个新的空白图像(除了打开一个图像),您可以使用Image.new(...)方法代替您的Image.open(...)。它被描述为here

然后致电self.i.put(...)进行逐像素操作。 (我是光象对象为在你的例子)

下面是一些一般Tkinter的光象documentation