6

Tengo este código aquí que crea un widget Tkinter Canvas y luego incrusta una imagen dentro de él.Creación de imágenes en blanco en Python (que permite la manipulación de píxel por píxel)

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

me gustaría ser capaz de crear una imagen en blanco en el widget de la lona, ​​por lo que podía hacer píxel por píxel de la manipulación en el widget. ¿Cómo podría uno hacer esto?

+0

Haga exactamente lo mismo que en http://stackoverflow.com/questions/4847706/using-pils-imagedraw-module, excepto que use 'Image.new' en lugar de' Image.open'. – misha

+0

¿Mi respuesta me ayudó? – Paul

+0

Sí, de hecho sí. Gracias por la ayuda. – rectangletangle

Respuesta

12

Para crear una nueva imagen en blanco (que no sea la apertura de una), puede utilizar el método Image.new(...) en lugar de su Image.open(...). Se describe here.

Luego llame al self.i.put(...) para hacer la manipulación de píxel por píxel. (i es el objeto PhotoImage como en su ejemplo)

Aquí hay una foto general de tkinter documentation.

+0

En realidad aquí es donde se describe Image.new (...): http://www.pythonware.com/library/pil/handbook/image.htm – Nate

+0

los enlaces están muertos – BiAiB

Cuestiones relacionadas