[pyar] Desacoplar una clase
Mariano Guerra
luismarianoguerra en gmail.com
Vie Feb 11 02:36:50 ART 2011
2011/2/11 j0hn <j0hn.com.ar en gmail.com>:
>> Basicamente podrias armarte una carpetita como vos decis con filters/blur.py filters/mosaic.py
>> Asegurarte que sea un modulo[0].
>
> Muchas gracias, algo asi buscaba y habia entendido de las otras
> respuestas pero me faltaba el ejemplito para terminar de cerrar la
> idea.
si bien no me termina de cerrar la idea que una clase que contiene una
imagen en bmp tenga a su vez los filtros (considero que son
operaciones que se aplican a una imagen y por lo tanto no seria
descabellado pensar que sean funciones en otro modulo), se me ocurre
una solucion que podria ser interesante si lo que queres hacer es para
jugar/aprender.
usando abc (abstract base clases) defini una clase base que sea Image
y que defina un conjunto de operaciones basicas que todo formato de
imagen deberia tener, heredas de esa clase la clase BMPy y definis
todos esos metodos. despues tenes las operaciones de filtros (que
pueden ser mixins o funciones aparte) que reciben un objeto que
implemente la interfaz Image y realice las operaciones.
lo que te permitiria esto es que si despues le agregas una clase para
manejar GIFs, PNGs o JPGs tus filtros salen andando instantaneamente.
http://docs.python.org/library/abc.html
si queres seguir jugando te recomiendo que leas sobre matriz de
convolucion, te va a permitir realizar una rutina generica
parametrizable con una matriz que te permite hacer efectos muy
distintos usando la misma logica
http://manual.gimp.org/en/plug-in-convmatrix.html
http://www.aishack.in/2010/08/image-convolution-examples/
http://www.roborealm.com/help/Convolution.php
http://www.aishack.in/2010/08/convolutions/
aca tenes info de mixins
http://stackoverflow.com/questions/533631/what-is-a-mixin-and-why-are-they-useful
saludos
More information about the pyar
mailing list