Создание пустых изображений в Python (допускает попиксельное манипулирование) - PullRequest
7 голосов
/ 31 января 2011

У меня есть этот код, который создает виджет 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 Ответ

13 голосов
/ 31 января 2011

Чтобы создать новое пустое изображение (кроме открывающего), вы можете использовать метод Image.new(...) вместо вашего Image.open(...). Здесь описано .

Затем вызовите self.i.put(...), чтобы сделать попиксельные манипуляции. (я - это объект PhotoImage, как в вашем примере)

Вот несколько общих фотографий tkinter Документация .

...