[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