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

rec*_*gle 7 python image-manipulation tkinter image-processing 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()
Run Code Online (Sandbox Code Playgroud)

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

Pau*_*aul 13

要创建新的空白图像(打开一个除外),您可以使用该Image.new(...)方法代替您的Image.open(...).这里描述.

然后调用self.i.put(...)逐像素操作.(我是你的例子中的PhotoImage对象)

这是一些通用的tkinter photoimage 文档.