在Python中创建空白图像(允许逐像素操作)
我这里有一段代码,它创建了一个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()
我想在这个画布小部件里创建一张空白的图片,这样我就可以逐个像素地进行操作。请问该怎么做呢?
1 个回答
13
如果你想创建一个新的空白图像,而不是打开一个已有的图像,你可以用 Image.new(...)
这个方法来代替 Image.open(...)
。这个方法的详细信息可以在 图像模块 中找到。
接下来,你可以使用 self.i.put(...)
来逐个像素地进行操作。(这里的 i
是你示例中的 PhotoImage
对象。)
关于 Tkinter 的 PhotoImage 类,这里有一些基本信息。