GEGL
# GEGL

La Generic Graphical Library (GEGL) (Biblioteca Genérica de Gráficos), es una biblioteca de programación en desarrollo para aplicaciones de procesamiento de imagen y también poder ser utilizada por otros programas.

## Historia

GEGL fue originalmente concebido en 2000 como reemplazo del núcleo de GIMP. Finalmente en el 2006 alcanzó una etapa donde el API externo fue suficientemente estable para reemplazar el núcleo de GIMP.

La mascota de GEGL, una imaginaria cabra con cinco patas fue creada por George Lebl en un huevo de Pascua en el escritorio GNOME.

El 20 de diciembre de 2007 fue introducido en la versión de desarrollo del GIMP, algunas de las características del programa - sobre todo las herramientas que modifican los colores, brillo o contraste - ya se han convertido a los operadores de GEGL. Está principalmente desarrollada para dar a GIMP soporte a imágenes con más de 8 bits por canal de color. Está parcialmente implementada en GIMP 2.6.

## Diseño

GEGL usa el grafo acíclico dirigido de las operaciones de la imagen (llamadas operadores) encadenadas juntas, manejado por un modelo por demanda donde el trabajo solo es hecho cuando se requiere. Esto habilita características potenciales como tener vistas preliminares muy rápidas mientras se está editando, y haciendo las mismas operaciones en resolución completa para la imagen final en background, como xRes.

## Operadores

Los operadores pueden ser simples, por ejemplo "add" (tomando dos entradas) o "premultiplicar por la alfa" (tomando una entrada), o más complejo, como con conversiones del espacio de color.

## Babl

Babl es una librería de soporte para GEGL, proporciona una manera genérica de ocuparse de las conversiones entre espacios de color. La idea es que las operaciones fundamentales son abstraídas lejos del programa en cuestión; La GEGL proporciona un tratamiento optimizado y potente de datos de color arbitrarios (opcionalmente con la ayuda de SIMD). Esto permite a una aplicación soportar eficientemente un amplio rango de espacios de color, (de RGB de 8 bits a CMYK completo de punto flotante), con un mínimo de código adicional en la aplicación.

