PIL no lo hará solo - PIL es una biblioteca de manipulación de imágenes con no Interfaces de usuario - que tiene un método show
, que hace abrir un programa externo que muestra la imagen, pero lo hace no comunicarse de vuelta con el proceso de Python.
Por lo tanto, para poder hacer que un usuario interactúe con una imagen, uno tiene que crear un programa GUI usando uno de los kits de herramientas consolidados para usar con Python; los más conocidos son Tkinter, GTK y Qt4 . Tkinter es interesante porque viene preinstalado con las instalaciones de Windows Python y, por lo tanto, está más fácilmente disponible para los usuarios de ese sistema. Los usuarios de Windows tendrían que descargar e instalar por separado las bibliotecas gtk o qt para poder usar su programa si decide usar uno de los otros kits de herramientas.
Aquí está un ejemplo de una aplicación minimalista Tkinter con una imagen seleccionable:
import Tkinter
from PIL import Image, ImageTk
from sys import argv
window = Tkinter.Tk(className="bla")
image = Image.open(argv[1] if len(argv) >=2 else "bla2.png")
canvas = Tkinter.Canvas(window, width=image.size[0], height=image.size[1])
canvas.pack()
image_tk = ImageTk.PhotoImage(image)
canvas.create_image(image.size[0]//2, image.size[1]//2, image=image_tk)
def callback(event):
print "clicked at: ", event.x, event.y
canvas.bind("<Button-1>", callback)
Tkinter.mainloop()
PIL es solo una biblioteca de imágenes, puede crear imágenes con ella. Mostrar imagen y capturar evento de clic es un trabajo de motor de interfaz de usuario. ¿Qué rey de interfaz de usuario tienes/quieres? – Ski