GEGL
   HOME

TheInfoList



OR:

The Generic Graphics Library (GEGL) is a
programming library In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and su ...
under development for
image processing An image is a visual representation of something. It can be two-dimensional, three-dimensional, or somehow otherwise feed into the visual system to convey information. An image can be an artifact, such as a photograph or other two-dimensio ...
applications. It is mainly developed for
GIMP GIMP ( ; GNU Image Manipulation Program) is a free and open-source raster graphics editor used for image manipulation (retouching) and image editing, free-form drawing, transcoding between different image file formats, and more specialized ...
in order to add support for higher bit depth images, and non-destructive editing. It was partially implemented in GIMP 2.6, with more added in 2.8, and is now a central part in 2.10. Many Filters are ready, but also much work in progress. Target is full support of all important filters in roadmap in Version 3.0. It is also used by GNOME'
Photos
an
gedl


Design

GEGL is modelled after a
directed acyclic graph In mathematics, particularly graph theory, and computer science, a directed acyclic graph (DAG) is a directed graph with no directed cycles. That is, it consists of vertices and edges (also called ''arcs''), with each edge directed from one ...
, where each ''node'' represents an image ''operation'' (called "operators" or "ops"), and each ''edge'' represents an ''image''. Operations can in general take several input images and give several output images, which corresponds to having several incoming edges (images) and several outgoing edges (images) at a given node (operation). The system uses an on-demand model, doing work only as required. This allows features such as having very quick previews while editing, and once the user has finished making changes, GEGL will repeat the same operations in full resolution for the final image in the background.


Operations

An operation (op) is a node within a GEGL graph responsible for one action; ops can be: * simple, such as "add" (taking two inputs) or "premultiply by alpha" (taking one input) * complex, such as colorspace conversions GEGL also has a notion of meta operations, where one operation can be constructed from other operations (e.g. ''unsharp mask'' is a combination of ''add'', ''multiply'', ''subtract'' and ''gaussian blur'' ops).


babl

babl, a support library for GEGL, provides a generic way to deal with color-space conversions; babl operates abstracting the fundamental color operations so that GEGL need not be aware of them. Through babl, GEGL provides an optimized and powerful (optionally with
SIMD Single instruction, multiple data (SIMD) is a type of parallel processing in Flynn's taxonomy. SIMD can be internal (part of the hardware design) and it can be directly accessible through an instruction set architecture (ISA), but it shoul ...
support) treatment of arbitrary color data; this enables dependent applications to efficiently support a wide range of color spaces (from 8-bit
RGB The RGB color model is an additive color model in which the red, green and blue primary colors of light are added together in various ways to reproduce a broad array of colors. The name of the model comes from the initials of the three addi ...
to full
floating point In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can ...
CMYK The CMYK color model (also known as process color, or four color) is a subtractive color model, based on the CMY color model, used in color printing, and is also used to describe the printing process itself. The abbreviation ''CMYK'' refers ...
) with minimal extra application code.


OpenRaster

OpenRaster is an
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
file format used for saving
raster graphics upright=1, The Smiley, smiley face in the top left corner is a raster image. When enlarged, individual pixels appear as squares. Enlarging further, each pixel can be analyzed, with their colors constructed through combination of the values for ...
. GEGL's lead developer Øyvind Kolås has helped specifying OpenRaster so that it is capable of saving a GEGL graph.


History

GEGL was originally conceived as a GIMP core replacement in 2000 by
Rhythm & Hues Rhythm & Hues Studios was an American visual effects and animation company, that received the Academy Award for Best Visual Effects in 1995 for ''Babe (film), Babe'', in 2008 for ''The Golden Compass (film), The Golden Compass'', and in 2013 for ...
software engineers, finally in 2006 the external API was deemed stable enough and capable of replacing the GIMP core. On 20 December 2007, it was added to the development version of GIMP. Some of GIMP's tools have already been converted to GEGL operations; mostly tools which modify colors, brightness or contrast have been converted. Version 0.2.0 is Part of Gimp 2.8.xy and Series 0.3.xy is Part of 2.9.x and in 2.10.0 Release Candidates. 0.4.0 is first Version for Version 2.10.0 of Gimp. Actual Version 0.4.xy is also base of development Version 2.99.x for stable 3.0 series of Gimp. 0.5 (or higher like 1.0) will be the line of 3.0 stable series. As of unstable 2.9.x series, all of GIMP's core relies on GEGL, and almost half of filters have been replaced with GEGL operations. Target is 100% of canvas filters in GEGL in 2.10 and later. Historically, the GEGL mascot, a five-legged goat created by , found life as an
easter egg Easter eggs, also called Paschal eggs, are eggs that are decorated for the Christian feast of Easter, which celebrates the resurrection of Jesus. As such, Easter eggs are common during the season of Eastertide (Easter season). The oldest tr ...
in
GNOME A gnome is a mythological creature and diminutive spirit in Renaissance magic and alchemy, first introduced by Paracelsus in the 16th century and later adopted by more recent authors including those of modern fantasy literature. Its characte ...
desktops.


OpenCL

Some of GEGL's operations are available in OpenCL-based hardware-accelerated version. A 3rd party effort, called GEGL-OpenCL, of converting more operations to OpenCL was started by Stream HPC in 2016. The project was stagnant starting May 2017, but was revived in the summer of 2019.


References


External links

* {{Official website
GEGL Mailing List Archives
C (programming language) libraries Beta software Free computer libraries Graphics libraries