Rellenar area irregular con PIL

Arnau Sanchez pyarnau en gmail.com
Jue Nov 15 01:01:53 CET 2007


Buenas,

>  Me da error en "get_pixel",  AttributeError: ImageDraw instance has no 
> attribute 'getpixel' ...
>  Lo he probado con PIL 1.1.5 y 1.1.6, ¿con qué versión te funciona a ti?.

En el mensaje ya avisa que no usa directamente un objeto Image de PIL, 
sino un wrapper propio. Las funciones equivalentes son getpixel() y 
putpixel(), mírate la documentación. Aún te faltaría implementar 
within(), pero es bastante sencilla. Subo un ejemplo con la clase 
wrapper que me hice, para que lo veas en marcha:

http://tokland.iespana.es/fill.tgz

El show() fallará si no tienes en /usr/bin/xv un visualizador de 
imágenes. Sirve cualquiera, el de imagemagick, feh, etc:

ln -s /usr/bin/display /usr/bin/xv

El código es un poco más largo que en el original porque he cambiado 
algunas cosas: 1) ya no hay que decirle el color de borde, sino que 
obtiene el color base de la posición inicial, todo lo que sea 
"diferente" será el borde 2) hay un parámetro de umbral (threshold) que 
indica la tolerancia en lo que considera borde.

arnau

pd: perdón por fastidiar el ID los hilos, pero no tengo acceso a los 
correos originales.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es