lunes, 9 de mayo de 2011

Introducción a PyGegl

Aclaremos que esto es una introducción porque yo me estoy introduciendo en esto y no porque sepa mucho.
Con esto aclarado, arranco.
Lo primero es tener compilado pygegl. Esto se hace entrando en la carpeta
dondetegamosbajadogegldegit/bindings/pygegl

y hacer el viejo y querido
$ ./autogen.sh
$ make
$ sudo make install

Si todo salió bien, tenemos pygegl listo para usar.
Lo primero es asegurarnos que funciona bien, esto lo podemos hacer probando los ejemplos que hay en la carpeta samples o corriendo Idle y haciendo import Gegl. Si python no chilla, podemos empezar.

Lo que hay que saber de Gegl ( que es lo que se yo hasta ahora ) es que trabaja sobre la base de que es un grafo acíclico. Esto significa que las operaciones son nodos que se van uniendo para armar dicho gráfico, que luego se procesa para generar la salida.
Uno de los samples nos genera un html con todas las operaciones que soporta nuestra compilación de gegl.
Por ejemplo, yo quería usar las fotos del modelo de origami del post anterior, pero no pude, porque no compilé el soporte para jpg, así que tuve que usar un png.

A continuación el código comentado:

# -*- coding: utf-8 -*-

#importamos gegl para poder trabajar
import Gegl

# lo primero es pedir un nodo, que va a ser la representacion 
# de nuestro grafo
gegl = Gegl.Node()

# el primer nodo, que creamos con new_child, es la operacion
# para abrir un archivo.
# pygegl me reporto un metodo "gegl:png-load" que intente
# usar al principio,
# pero sin exito.
nodo_entrada = gegl.new_child("gegl:load", path="test.png")

# el nodo de salida que va a guardar la imagen
nodo_salida = gegl.new_child("gegl:png-save", path="test2.png")

# conectamos los nodos y formamos el grafo
nodo_entrada >> nodo_salida

# procesamos el nodo de salida, que a su vez va a procesar 
# los nodos relacionados.
# esta process() solo se llama en algunos tipos de nodos.
nodo_salida.process()


Este sencillo ejemplo abre una imagen y la vuelve a guardar.
Para la próxima, un ejemplo más complejo y si no tengo tanta fiaca, veo de poner resaltado de sintaxis.

No hay comentarios:

Publicar un comentario