GEGL

Last updated
GEGL
Initial release2000;23 years ago (2000)
Stable release
0.4.40  OOjs UI icon edit-ltr-progressive.svg / 13 November 2022;12 months ago (13 November 2022) [1]
Repository
Written in C
Operating system Cross-platform
Type Image processing library
License GNU Lesser General Public License
Website www.gegl.org OOjs UI icon edit-ltr-progressive.svg

The Generic Graphics Library (GEGL) is a programming library under development for image processing applications. It is mainly developed for GIMP in order to add support for higher bit depth images, and non-destructive editing. It was partially implemented in GIMP 2.6, [2] 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. [3] [4] It is also used by GNOME's Photos and gedl.

Contents

Design

GEGL is modelled after a directed acyclic graph, 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:

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; [5] 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 support) treatment of arbitrary color data; this enables dependent applications to efficiently support a wide range of color spaces (from 8-bit RGB to full floating point CMYK) with minimal extra application code.

OpenRaster

OpenRaster is an XML file format used for saving raster graphics. GEGL's lead developer Øyvind Kolås has helped specifying OpenRaster so that it is capable of saving a GEGL graph.

History

Historically a GNOME easter egg, the GEGL mascot is a five-legged goat. (Genetically Engineered Goat, Large) GEGL.png
Historically a GNOME easter egg, the GEGL mascot is a five-legged goat. (Genetically Engineered Goat, Large)

GEGL was originally conceived as a GIMP core replacement in 2000 by Rhythm & Hues 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. [6]

Historically, the GEGL mascot, a five-legged goat created by George (Jiří) Lebl  [ Wikidata ], [7] found life as an easter egg in GNOME desktops. [8]

OpenCL

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

Related Research Articles

<span class="mw-page-title-main">GIMP</span> Open source raster graphics editor

GNU Image Manipulation Program, commonly known by its acronym GIMP, 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 tasks. It is extensible by means of plugins, and scriptable. It is not designed to be used for drawing, though some artists and creators have used it in this way.

<span class="mw-page-title-main">CinePaint</span> Free software for retouching bitmap frames of films

CinePaint is a free and open source computer program for painting and retouching bitmap frames of films. It is a fork of version 1.0.4 of the GNU Image Manipulation Program (GIMP). It enjoyed some success as one of the earliest open source tools developed for feature motion picture visual effects and animation work. The main reason for this adoption over mainline GIMP was its support for high bit depths which can be required for film work. The mainline GIMP project later added high bit depths in GIMP 2.9.2, released November 2015. It is free software under the GPL-2.0-or-later. In 2018, a post titled "CinePaint 2.0 Making Progress" announced progress, but version 2.0 has not been released as of 2022.

<span class="mw-page-title-main">Inkscape</span> Vector graphics editor

Inkscape is a free and open-source vector graphics editor for traditional Unix-compatible systems such as GNU/Linux, BSD derivatives and Illumos, as well as Windows and macOS. It offers a rich set of features and is widely used for both artistic and technical illustrations such as cartoons, clip art, logos, typography, diagramming and flowcharting. It uses vector graphics to allow for sharp printouts and renderings at unlimited resolution and is not bound to a fixed number of pixels like raster graphics. Inkscape uses the standardized Scalable Vector Graphics (SVG) file format as its main format, which is supported by many other applications including web browsers. It can import and export various other file formats, including SVG, AI, EPS, PDF, PS and PNG.

<span class="mw-page-title-main">CUPS</span> Computer printing system

CUPS is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.

XCF, short for eXperimental Computing Facility, is the native image format of the GIMP image-editing program. It saves all of the data the program handles related to the image, including, among others, each layer, the current selection, channels, transparency, paths and guides.

<span class="mw-page-title-main">GDK</span> Software library

GDK is a library that acts as a wrapper around the low-level functions provided by the underlying windowing and graphics systems. GDK lies between the display server and the GTK library, handling basic rendering such as drawing primitives, raster graphics (bitmaps), cursors, fonts, as well as window events and drag-and-drop functionality.

<i>Tux Paint</i> Graphics software

Tux Paint is a free and open source raster graphics editor geared towards young children. The project was started in 2002 by Bill Kendrick who continues to maintain and improve it, with help from numerous volunteers. Tux Paint is seen by many as a free software alternative to Kid Pix, a similar proprietary educational software product.

<span class="mw-page-title-main">Krita</span> Digital painting and 2D animation software

Krita is a free and open-source raster graphics editor designed primarily for digital art and 2D animation. The software runs on Windows, macOS, Linux, Android, and ChromeOS, and features an OpenGL-accelerated canvas, colour management support, an advanced brush engine, non-destructive layers and masks, group-based layer management, vector artwork support, and switchable customisation profiles.

Raster graphics editors can be compared by many variables, including availability.

<span class="mw-page-title-main">Quartz Composer</span> Node-based visual programming language

Quartz Composer is a node-based visual programming language provided as part of the Xcode development environment in macOS for processing and rendering graphical data.

<span class="mw-page-title-main">GIMPshop</span>

GIMPshop was a modification of the free and open source graphics program GNU Image Manipulation Program (GIMP), with the intent to imitate the look and feel of Adobe Photoshop.

<span class="mw-page-title-main">Seashore (software)</span> Raster graphics editor for macOS

Seashore is a free and open-source image editor for macOS, similar to Photoshop/GIMP, with a simpler Cocoa user interface. Seashore uses GIMP's native file format, XCF, and has support for a handful of other graphics file formats, including full support for TIFF, PNG, JPEG, JPEG2000, and HEIC and read-only support for BMP, PDF, SVG and GIF. Seashore offers fewer features than Photoshop/GIMP, but is intended to be easy-to-use and to run natively on macOS. It includes layers and alpha channel support, gradients and transparency effects, anti-aliased brushes, tablet support and plug-in filters.

<span class="mw-page-title-main">Linux color management</span> Controlled color representations on Linux operating system

Linux color management has the same goal as the color management systems (CMS) for other operating systems, which is to achieve the best possible color reproduction throughout an imaging workflow from its source, through imaging software, and finally onto an output medium. In particular, color management attempts to enable color consistency across media and throughout a color-managed workflow.

Clutter is a discontinued GObject-based graphics library for creating hardware-accelerated user interfaces. Clutter is an OpenGL-based 'interactive canvas' library and does not contain any graphical control elements. It relies upon OpenGL (1.4+) or OpenGL ES for rendering,. It also supports media playback using GStreamer and 2D graphics rendering using Cairo.

OpenRaster is a file format proposed for the common exchange of layered images between raster graphics editors. It is meant as a replacement for later versions of the Adobe PSD format. OpenRaster is still in development and so far is supported by a few programs. The default file extension for OpenRaster files is ".ora".

<span class="mw-page-title-main">GTK</span> Free and open-source cross-platform widget toolkit for creating graphical user interfaces

GTK is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the Wayland and X11 windowing systems.

<span class="mw-page-title-main">Freeplane</span> Free mind mapping application

Freeplane is a free, open source software application for creating mind maps, and electronic outlines. Written in Java, it is supported on Windows, Mac OS X and Linux, and is licensed under the GNU GPL version "2 or later".

<span class="mw-page-title-main">WebP</span> Image file format

WebP is a raster graphics file format developed by Google intended as a replacement for JPEG, PNG, and GIF file formats. It supports both lossy and lossless compression, as well as animation and alpha transparency.

<span class="mw-page-title-main">Darktable</span>

Darktable is a free and open-source photography application and raw developer. Rather than being a raster graphics editor like Adobe Photoshop or GIMP, it comprises a subset of image editing operations specifically aimed at non-destructive raw image post-production. It is primarily focused on improving a photographer's workflow by facilitating the handling of large numbers of images. It is freely available in versions tailored for most major Linux distributions, macOS, Solaris and Windows and is released under the GPL-3.0-or-later.

<span class="mw-page-title-main">GTK Scene Graph Kit</span>

GTK Scene Graph Kit (GSK) is the rendering and scene graph API for GTK introduced with version 3.90. GSK lies between the graphical control elements (widgets) and the rendering.

References

  1. "tags". 25 June 2023.
  2. "GIMP 2.6 Release" . Retrieved 2008-10-01.
  3. "Hacking:Porting filters to GEGL - GIMP Developer Wiki".
  4. "Gimp 2.10 announcement on Google+" . Retrieved 2012-03-15.
  5. babl website
  6. "Roadmap - GIMP Developer Wiki".
  7. George (Jiří) Lebl (2007-12-16). "Stuff of Jiří Lebl (or George)" . Retrieved 2008-03-21. I'm a big supporter of free software and if I do work on free software it is mostly on GNOME.
  8. Christian and Steve (2002-02-02). "GNOME Summary - 2002-01-20 - 2002-02-02". GNOME Developer News. Archived from the original on 2009-04-18. Retrieved 2008-03-19. Up to this point this game has been considered just another Urban Legend by the summary editors, but no more.
  9. "GEGL-OpenCL". GitHub . 28 September 2021.
  10. "GIMP - StreamComputing launches GEGL-OpenCL project". 28 January 2016.