在Python中创建空白图像(允许逐像素操作)

时间:2011-01-31 03:06:02

标签: python image-processing image-manipulation tkinter python-imaging-library

我在这里创建了一个Tkinter Canvas小部件,然后在其中嵌入一个图像。

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()

我希望能够在Canvas小部件中创建一个空白图像,这样我就可以在小部件中进行逐像素操作。怎么会这样呢?

1 个答案:

答案 0 :(得分:13)

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

然后调用self.i.put(...)进行逐像素操作。 (我是示例中的PhotoImage对象)

这是一些通用的tkinter photoimage documentation