# GEGL operation reference

Image processing operations are shared objects (plug-ins) loaded when GEGL initializes. This page is generated from information registered by the plug-ins themselves.

## Categories

A plug-in can belong in multiple categories. Below is indexes broken down into the various available categories.

### edge

gegl:difference-of-gaussians

### edge-detect

gegl:edge-laplace gegl:edge-sobel

### porter-duff

gegl:remap svg:clear svg:dst svg:dst-atop svg:dst-in svg:dst-out svg:dst-over svg:src svg:src-atop svg:src-in svg:src-out svg:src-over svg:src-over svg:xor

### effects

gegl:dropshadow

### blend

gegl:weighted-blend

### distort

gegl:ripple gegl:waves

### enhance

gegl:c2g gegl:noise-reduction gegl:polar-coordinates gegl:stress gegl:stretch-contrast gegl:unsharp-mask

### video

gegl:mblur gegl:v4l

### compositors

gegl:add gegl:divide gegl:exp-combine gegl:gamma gegl:multiply gegl:remap gegl:soft-light gegl:subtract gegl:svg-huerotate gegl:svg-luminancetoalpha gegl:svg-matrix gegl:svg-multiply gegl:svg-saturate gegl:weighted-blend svg:clear svg:color-burn svg:color-dodge svg:darken svg:difference svg:dst svg:dst-atop svg:dst-in svg:dst-out svg:dst-over svg:exclusion svg:hard-light svg:lighten svg:overlay svg:plus svg:screen svg:src svg:src-atop svg:src-in svg:src-out svg:src-over svg:src-over svg:xor

### svgfilter

gegl:soft-light gegl:svg-huerotate gegl:svg-luminancetoalpha gegl:svg-matrix gegl:svg-multiply gegl:svg-saturate svg:color-burn svg:color-dodge svg:darken svg:difference svg:exclusion svg:hard-light svg:lighten svg:overlay svg:plus svg:screen

### misc

gegl:bilateral-filter gegl:matting-global gegl:snn-mean

### render

gegl:checkerboard gegl:color gegl:fill-path gegl:fractal-explorer gegl:grid gegl:introspect gegl:path gegl:perlin-noise gegl:text gegl:vector-stroke gegl:vignette

### input

gegl:buffer-source gegl:load gegl:open-buffer gegl:pixbuf gegl:rectangle gegl:svg-load gegl:v4l

### blur

gegl:box-blur gegl:gaussian-blur gegl:lens-distortion gegl:mblur gegl:mirrors gegl:motion-blur gegl:pixelize

### math

gegl:add gegl:divide gegl:gamma gegl:multiply gegl:subtract

### core

gegl:clone gegl:convert-format gegl:crop gegl:nop

### transform

gegl:map-absolute gegl:map-relative

### color

gegl:brightness-contrast gegl:color-temperature gegl:color-to-alpha gegl:contrast-curve gegl:convert-format gegl:grey gegl:invert gegl:levels gegl:mono-mixer gegl:posterize gegl:stretch-contrast gegl:threshold gegl:value-invert

### programming

gegl:buffer-sink gegl:buffer-source gegl:pixbuf gegl:save-pixbuf gegl:write-buffer

### display

gegl:display gegl:sdl-display

### transparency

gegl:opacity

### output

gegl:buffer-sink gegl:exr-save gegl:jpg-save gegl:png-save gegl:ppm-save gegl:rgbe-save gegl:save gegl:save-pixbuf gegl:write-buffer

### meta

gegl:difference-of-gaussians gegl:display gegl:dropshadow gegl:layer gegl:load gegl:save gegl:unsharp-mask

### tonemapping

gegl:fattal02 gegl:mantiuk06 gegl:reinhard05

| gegl:add
| Math operation add (c = c + value)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Double 0.00 -inf - +inf | value | global value used if aux doesn't contain data
| gegl:bilateral-filter
| An edge preserving blur filter that can be used for noise reduction. It is a gaussian blur where the contribution of neighbourhood pixels are weighted by the color difference from the center pixel.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 4.00 0.00-1000.00 | blur-radius | Radius of square pixel region, (width and height will be radius*2+1).
| Double 8.00 0.00-100.00 | edge-preservation | Amount of edge preservation
| gegl:box-blur
| Performs an averaging of a square box of pixels
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 4.00 0.00-1000.00 | radius | Radius of square pixel region, (width and height will be radius*2+1)
| gegl:brightness-contrast
| Changes the light level and contrast.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 1.00 -5.00-5.00 | contrast | Range scale factor
| Double 0.00 -3.00-3.00 | brightness | Amount to increase brightness
| gegl:buffer-sink
| A GEGL buffer destination surface.
| Object | input | Input pad, for image buffer input.
| Pointer | buffer | The location where to store the output GeglBuffer
| Pointer | format | The babl format of the output GeglBuffer, NULL to use input buffer format
| gegl:buffer-source
| A source that uses an in-memory GeglBuffer, for use internally by GEGL.
| Object | output | Output pad for generated image buffer.
| Object | buffer | The GeglBuffer to load into the pipeline
| gegl:c2g
| Color to grayscale conversion, uses envelopes formed from spatial color differences to perform color-feature preserving grayscale spatial contrast enhancement
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| int 300 2-3000 | radius | Neighborhood taken into account, this is the radius in pixels taken into account when deciding which colors map to which gray values
| int 4 1-1000 | samples | Number of samples to do per iteration looking for the range of colors
| int 10 1-1000 | iterations | Number of iterations, a higher number of iterations provides less noisy results at a computational cost
| gegl:checkerboard
| Checkerboard renderer
| Object | output | Output pad for generated image buffer.
| int 16 1- +inf | x | Horizontal width of cells pixels
| int 16 1- +inf | y | Vertical width of cells in pixels
| int 0 -inf - +inf | x-offset | Horizontal offset (from origin) for start of grid
| int 0 -inf - +inf | y-offset | Vertical offset (from origin) for start of grid
| Color rgb(0.0000, 0.0000, 0.0000) | color1 | One of the cell colors (defaults to 'black')
| Color rgb(1.0000, 1.0000, 1.0000) | color2 | The other cell color (defaults to 'white')
| gegl:clone
| Clone a buffer
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| String ID | ref | The reference ID used as input (for use in XML).
| gegl:color
| Generates a buffer entirely filled with the specified color, crop it to get smaller dimensions.
| Object | output | Output pad for generated image buffer.
| Color rgb(0.0000, 0.0000, 0.0000) | value | The color to render (defaults to 'black')
| gegl:color-temperature
| Allows changing the color temperature of an image.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 6500.00 1000.00-12000.00 | original-temperature | Estimated temperature of the light source in Kelvin the image was taken with.
| Double 6500.00 1000.00-12000.00 | intended-temperature | Corrected estimation of the temperature of the light source in Kelvin.
| gegl:color-to-alpha
| Performs color-to-alpha on the image.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Color rgb(0.0000, 0.0000, 0.0000) | color | The color to render (defaults to 'black')
| gegl:contrast-curve
| Adjusts the contrast of the image according to a curve.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Int 0 0-65536 | sampling-points | Number of curve sampling points. 0 for exact calculation.
| Curve | curve | The contrast curve.
| gegl:convert-format
| Convert the data to the specified format
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| String RGBA float. | format | Babl output format string
| gegl:crop
| Crop a buffer
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -inf - +inf | x | X
| Double 0.00 -inf - +inf | y | Y
| Double 10.00 -inf - +inf | width | Width
| Double 10.00 -inf - +inf | height | Height
| gegl:difference-of-gaussians
| Does an edge detection based on the difference of two gaussian blurs.
| Double 1.00 0.00-1000.00 | radius1 | Radius
| Double 2.00 0.00-1000.00 | radius2 | Radius
| gegl:display
| Display the input buffer in a window.
| Object | input | Input pad, for image buffer input.
| String window_titl | window-title | Title to be given to output window
| gegl:divide
| Math operation divide (c = value==0.0f?0.0f:c/value)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Double 1.00 -inf - +inf | value | global value used if aux doesn't contain data
| gegl:dropshadow
| Creates a dropshadow effect on the input buffer
| Double 0.50 -2.00-2.00 | opacity | Opacity
| Double 20.00 -inf - +inf | x | Horizontal shadow offset
| Double 20.00 -inf - +inf | y | Vertical shadow offset
| Double 10.00 0.00- +inf | radius | Blur radius
| gegl:edge-laplace
| High-resolution edge detection
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| gegl:edge-sobel
| Specialized direction-dependent edge detection
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Boolean True | horizontal | Horizontal
| Boolean True | vertical | Vertical
| Boolean True | keep-signal | Keep Signal
| gegl:exp-combine
| Combine multiple scene exposures into one high range buffer
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| String | exposures | Relative brightness of each exposure in EV
| Int 12 8-32 | steps | Log2 of source's discretization steps
| Double 8.00 0.00-32.00 | sigma | Weight distrubtion sigma controlling response contributions
| gegl:exr-save
| OpenEXR image saver
| Object | input | Input pad, for image buffer input.
| String | path | path of file to write to.
| Int 0 0-2048 | tile | tile size to use.
| gegl:fattal02
| Adapt an image, which may have a high dynamic range, for presentation using a low dynamic range. This operator attenuates the magnitudes of local image gradients, producing luminance within the range 0.0-1.0
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 1.00 0.00-2.00 | alpha | Gradient threshold for detail enhancement
| Double 0.90 0.10-2.00 | beta | Strength of local detail enhancement
| Double 0.80 0.00-1.00 | saturation | Global color saturation factor
| Double 0.00 0.00-1.00 | noise | Gradient threshold for lowering detail enhancement
| gegl:fill-path
| Renders a filled region
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Color rgba(0.0000, 0.0000, 0.0000, 0.6000) | color | Color of paint to use for filling.
| Double 1.00 -2.00-2.00 | opacity | The fill opacity to use.
| String nonzero | fill-rule | how to determine what to fill (nonzero|evenodd
| String | transform | svg style description of transform.
| Path | d | A GeglVector representing the path of the stroke
| gegl:fractal-explorer
| Fractal Explorer
| Object | output | Output pad for generated image buffer.
| int 400 1-10000000 | width | Width
| int 400 1-10000000 | height | Height
| Int 0 0-8 | fractaltype | Type of a fractal
| Double -2.00 -3.00-3.00 | xmin | Left
| Double 2.00 -3.00-3.00 | xmax | Right
| Double -2.00 -3.00-3.00 | ymin | Top
| Double 2.00 -3.00-3.00 | ymax | Bottom
| Int 50 1-1000 | iter | Iterations
| Double -0.75 -2.50-2.50 | cx | CX (only Julia)
| Double 0.20 -2.50-2.50 | cy | CY (only Julia)
| Double 1.00 0.00-1.00 | redstretch | Red stretching factor
| Double 1.00 0.00-1.00 | greenstretch | Green stretching factor
| Double 1.00 0.00-1.00 | bluestretch | Blue stretching factor
| Int 1 0-2 | redmode | Red application mode (0:SIN; 1:COS; 2:NONE)
| Int 1 0-2 | greenmode | Green application mode (0:SIN; 1:COS; 2:NONE)
| Int 0 0-2 | bluemode | Blue application mode (0:SIN; 1:COS; 2:NONE)
| Boolean False | redinvert | Red inversion
| Boolean False | greeninvert | Green inversion
| Boolean False | blueinvert | Blue inversion
| Int 256 2-8192 | ncolors | Number of colors
| Boolean False | useloglog | Use loglog smoothing
| gegl:gamma
| Math operation gamma (c = powf (c, value))
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Double 1.00 -inf - +inf | value | global value used if aux doesn't contain data
| gegl:gaussian-blur
| Performs an averaging of neighboring pixels with the normal distribution as weighting
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 4.00 0.00-10000.00 | std-dev-x | Standard deviation for the horizontal axis. (multiply by ~2 to get radius)
| Double 4.00 0.00-10000.00 | std-dev-y | Standard deviation for the vertical axis. (multiply by ~2 to get radius.)
| String auto | filter | Optional parameter to override the automatic selection of blur filter. Choices are fir, iir, auto
| gegl:grey
| Turns the image greyscale
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| gegl:grid
| Grid renderer
| Object | output | Output pad for generated image buffer.
| int 32 1- +inf | x | Horizontal width of cells pixels
| int 32 1- +inf | y | Vertical width of cells in pixels
| int 0 -inf - +inf | x-offset | Horizontal offset (from origin) for start of grid
| int 0 -inf - +inf | y-offset | Vertical offset (from origin) for start of grid
| int 4 0- +inf | line-width | Width of grid lines in pixels
| int 4 0- +inf | line-height | Height of grid lines in pixels
| Color rgb(0.0000, 0.0000, 0.0000) | line-color | Color of the grid lines
| gegl:introspect
| GEGL graph visualizer.
| Object | output | Output pad for generated image buffer.
| Object | node | GeglNode to introspect
| gegl:invert
| Inverts the components (except alpha), the result is the corresponding "negative" image.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| gegl:jpg-save
| JPEG image saver (passes the buffer through, saves as a side-effect)
| Object | input | Input pad, for image buffer input.
| String | path | Target path and filename, use '-' for stdout
| Int 90 1-100 | quality | JPEG compression quality (between 1 and 100)
| Int 0 0-100 | smoothing | Smoothing factor from 1 to 100; 0 disables smoothing
| Boolean True | optimize | Use optimized huffman tables
| Boolean True | progressive | Create progressive JPEG images
| Boolean False | grayscale | Create a grayscale (monochrome) image
| gegl:layer
| A layer in the traditional sense
| String gegl:over.. | composite-op | Composite operation to use
| Double 1.00 0.00-1.00 | opacity | Opacity
| Double 0.00 -inf - +inf | x | Horizontal position
| Double 0.00 -inf - +inf | y | Vertical position
| Double 1.00 -inf - +inf | scale | Scale 1:1 size
| FilePath | src | Source datafile (png, jpg, raw, svg, bmp, tif, ...)
| gegl:lens-distortion
| Copies image performing lens distortion correction.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -100.00-100.00 | main | Main value of distortion
| Double 0.00 -100.00-100.00 | zoom | Main value of distortion
| Double 0.00 -100.00-100.00 | edge | Edge value of distortion
| Double 0.00 -100.00-100.00 | brighten | Brighten the image
| Double 0.00 -100.00-100.00 | x-shift | Shift horizontal
| Double 0.00 -100.00-100.00 | y-shift | Shift vertical
| gegl:levels
| Remaps the intensity range of the image
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -1.00-4.00 | in-low | Input luminance level to become lowest output
| Double 1.00 -1.00-4.00 | in-high | Input luminance level to become white.
| Double 0.00 -1.00-4.00 | out-low | Lowest luminance level in output
| Double 1.00 -1.00-4.00 | out-high | Highest luminance level in output
| gegl:load
| Multipurpose file loader, that uses other native handlers, and fallback conversion using image magick's convert.
| FilePath | path | Path of file to load.
| gegl:mantiuk06
| Adapt an image, which may have a high dynamic range, for presentation using a low dynamic range. This operator constrains contrasts across multiple spatial frequencies, producing luminance within the range 0.0-1.0
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.10 0.00-1.00 | contrast | The amount of contrast compression
| Double 0.80 0.00-2.00 | saturation | Global colour saturation factor
| Double 1.00 1.00-99.00 | detail | Level of emphasis on image gradient details
| gegl:map-absolute
| sample input with an auxiliary buffer that contain absolute source coordinates
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Enum | sampler-type | Sampler used internaly
| gegl:map-relative
| sample input with an auxiliary buffer that contain relative source coordinates
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Double 1.00 0.00-5000.00 | scaling | scaling factor of displacement, indicates how large spatial displacement a relative mapping value of 1.0 corresponds to.
| Enum | sampler-type | Sampler used internaly
| gegl:matting-global
| Given a sparse user supplied tri-map and an input image, create a foreground alpha matte. Set white as foreground, black as background for the tri-map. Everything else will be treated as unknown and filled in.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Int 10 1- +inf | iterations | Number of iterations
| gegl:mblur
| Accumulating motion blur
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.95 0.00-1.00 | dampness | The value represents the contribution of the past to the new frame.
| gegl:mirrors
| Applies mirroring effect on the image.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 0.00-180.00 | m-angle | Rotation applied to the mirrors
| Double 0.00 0.00-360.00 | r-angle | Rotation applied to the result
| Int 6 2-24 | n-segs | Number of mirrors to use
| Double 0.50 0.00-1.00 | c-x | X offset of the result of mirroring
| Double 0.50 0.00-1.00 | c-y | Y offset of the result of mirroring
| Double 0.00 -1.00-1.00 | o-x | X axis ratio for the center of mirroring
| Double 0.00 -1.00-1.00 | o-y | Y axis ratio for the center of mirroring
| Double 0.00 0.00-0.50 | trim-x | X axis ratio for trimming mirror expanse
| Double 0.00 0.00-0.50 | trim-y | Y axis ratio for trimming mirror expanse
| Double 100.00 0.10-100.00 | input-scale | Scale factor to make rendering size bigger
| Double 1.00 0.00-100.00 | output-scale | Scale factor to make rendering size bigger
| Boolean True | clip | Clip result to input size
| Boolean True | warp | Fill full output area
| gegl:mono-mixer
| Monochrome channel mixer
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.50 -10.00-10.00 | red | Amount of red
| Double 0.25 -10.00-10.00 | green | Amount of green
| Double 0.25 -10.00-10.00 | blue | Amount of blue
| gegl:motion-blur
| Linear motion blur
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 10.00 0.00-1000.00 | length | Length of blur in pixels
| Double 0.00 -360.00-360.00 | angle | Angle of blur in degrees
| gegl:multiply
| Math operation multiply (c = c * value)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Double 1.00 -inf - +inf | value | global value used if aux doesn't contain data
| gegl:noise-reduction
| Anisotropic like smoothing operation
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| int 4 0-32 | iterations | How many iteratarions to run the algorithm with
| gegl:nop
| No operation (can be used as a routing point)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| gegl:opacity
| Weights the opacity of the input both the value of the aux input and the global value property.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Double 1.00 -10.00-10.00 | value | Global opacity value that is always used on top of the optional auxiliary input buffer.
| gegl:open-buffer
| A source that uses an on-disk GeglBuffer.
| Object | output | Output pad for generated image buffer.
| String | path | a GeglBuffer on disk to open
| gegl:path
| Renders a brush stroke
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Color rgba(0.0000, 0.0000, 0.0000, 0.6000) | fill | Color of paint to use for filling, use 0 opacity to disable filling
| Color rgba(0.0000, 0.0000, 0.0000, 0.0000) | stroke | Color of paint to use for stroking
| Double 2.00 0.00-200.00 | stroke-width | The width of the brush used to stroke the path
| Double 1.00 -2.00-2.00 | stroke-opacity | Opacity of stroke, note, does not behave like SVG since at the moment stroking is done using an airbrush tool
| Double 0.60 0.00-1.00 | stroke-hardness | Hardness of the brush, 0.0 for a soft brush, 1.0 for a hard brush
| String nonzero | fill-rule | How to determine what to fill (nonzero|evenodd
| String | transform | SVG style description of transform
| Double 1.00 -2.00-2.00 | fill-opacity | The fill opacity to use
| Path | d | A GeglVector representing the path of the stroke
| gegl:perlin-noise
| Perlin noise generator
| Object | output | Output pad for generated image buffer.
| Double 1.20 -inf - +inf | alpha | not documented
| Double 1.80 -inf - +inf | scale | not documented
| Double -1.00 -inf - +inf | zoff | not documented
| Double 0.00 -inf - +inf | seed | not documented
| Int 3 0-20 | n | not documented
| gegl:pixbuf
| Uses the GdkPixbuf located at the memory location in pixbuf.
| Object | output | Output pad for generated image buffer.
| Pointer | pixbuf | GdkPixbuf to use
| gegl:pixelize
| Simplify image into an array of solid-colored squares
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| int 16 1-123456 | size-x | Width of blocks in pixels
| int 16 1-123456 | size-y | Height of blocks in pixels
| gegl:png-save
| PNG image saver (passes the buffer through, saves as a side-effect.)
| Object | input | Input pad, for image buffer input.
| String | path | Target path and filename, use '-' for stdout.
| Int 1 1-9 | compression | PNG compression level from 1 to 9
| Int 16 8-16 | bitdepth | 8 and 16 are amongst the currently accepted values.
| gegl:polar-coordinates
| Performs polar-coordinates on the image.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 100.00 0.00-100.00 | depth | Circle depth in percent
| Double 0.00 0.00-359.90 | angle | Offset angle.
| Boolean False | bw | Start from the right instead of the left
| Boolean True | top | Put the top row in the middle and the bottom row on the outside
| Boolean True | polar | Map the image to a circle
| Int 0 0- +inf | pole-x | Origin point for the polar coordinates
| Int 0 0- +inf | pole-y | Origin point for the polar coordinates
| Boolean True | middle | Let origin point to be the middle one
| gegl:posterize
| Reduces the number of levels in each color component of the image.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| int 8 1-64 | levels | number of levels per component
| gegl:ppm-save
| PPM image saver (Portable pixmap saver.)
| Object | input | Input pad, for image buffer input.
| String | path | Target path and filename, use '-' for stdout.
| Boolean True | rawformat | Raw format
| Int 16 8-16 | bitdepth | 8 and 16 are amongst the currently accepted values.
| gegl:rectangle
| A rectangular source of a fixed size with a solid color
| Double 0.00 -inf - +inf | x | Horizontal position
| Double 0.00 -inf - +inf | y | Vertical position
| Double 0.00 0.00- +inf | width | Horizontal extent
| Double 0.00 0.00- +inf | height | Vertical extent
| Color rgb(1.0000, 1.0000, 1.0000) | color | Color to render
| gegl:reflect
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -inf - +inf | origin-x | X coordinate of origin
| Double 0.00 -inf - +inf | origin-y | Y coordinate of origin
| String linear | filter | Filter type (nearest, linear, lanczos, cubic, lohalo)
| Boolean False | hard-edges | Hard edges
| Int 3 3-6 | lanczos-width | Width of the Lanczos function
| Double 0.00 -inf - +inf | x | Direction vector's X component
| Double 0.00 -inf - +inf | y | Direction vector's Y component
| gegl:reinhard05
| Adapt an image, which may have a high dynamic range, for presentation using a low dynamic range. This is an efficient global operator derived from simple physiological observations, producing luminance within the range 0.0-1.0
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -100.00-100.00 | brightness | Overall brightness of the image
| Double 0.00 0.00-1.00 | chromatic | Adapation to colour variation across the image
| Double 1.00 0.00-1.00 | light | Adapation to light variation across the image
| gegl:remap
| stretch components of pixels individually based on luminance envelopes
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Object | aux2 | Second auxiliary image buffer input pad.
| gegl:rgbe-save
| RGBE image saver (Radiance HDR format)
| Object | input | Input pad, for image buffer input.
| String | path | Target path and filename, use '-' for stdout.
| gegl:ripple
| Transform the buffer with a ripple pattern
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 25.00 0.00-1000.00 | amplitude | Amplitude of the ripple
| Double 200.00 0.00-1000.00 | period | Period of the ripple
| Double 0.00 -1.00-1.00 | phi | Phase shift
| Double 0.00 -180.00-180.00 | angle | Angle in degree
| Enum | sampler-type | Sampler used internally
| Enum | wave-type | Type of wave
| gegl:rotate
| Rotate the buffer around the specified origin.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -inf - +inf | origin-x | X coordinate of origin
| Double 0.00 -inf - +inf | origin-y | Y coordinate of origin
| String linear | filter | Filter type (nearest, linear, lanczos, cubic, lohalo)
| Boolean False | hard-edges | Hard edges
| Int 3 3-6 | lanczos-width | Width of the Lanczos function
| Double 0.00 -inf - +inf | degrees | Angle to rotate (clockwise)
| gegl:save
| Multipurpose file saver, that uses other native handlers.
| Object | input | Input pad, for image buffer input.
| FilePath | path | Path of file to save.
| gegl:save-pixbuf
| Save output into a GdkPixbuf.
| Object | input | Input pad, for image buffer input.
| Pointer | pixbuf | The location where to store the output GdkPixbuf.
| gegl:scale
| Scales the buffer.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -inf - +inf | origin-x | X coordinate of origin
| Double 0.00 -inf - +inf | origin-y | Y coordinate of origin
| String linear | filter | Filter type (nearest, linear, lanczos, cubic, lohalo)
| Boolean False | hard-edges | Hard edges
| Int 3 3-6 | lanczos-width | Width of the Lanczos function
| Double 1.00 -inf - +inf | x | Horizontal scale factor
| Double 1.00 -inf - +inf | y | Vertical scale factor
| gegl:sdl-display
| Displays the input buffer in an SDL window (restricted to one display op/process, due to SDL implementation issues).
| Object | input | Input pad, for image buffer input.
| String window_titl | window-title | Title to be given to output window
| String icon_title. | icon-title | Icon to be used for output window
| Pointer | screen | private
| Int 0 0-1000 | w | private
| Int 0 0-1000 | h | private
| Int 0 0-1000 | width | private
| Int 0 0-1000 | height | private
| gegl:shear
| Shears the buffer
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -inf - +inf | origin-x | X coordinate of origin
| Double 0.00 -inf - +inf | origin-y | Y coordinate of origin
| String linear | filter | Filter type (nearest, linear, lanczos, cubic, lohalo)
| Boolean False | hard-edges | Hard edges
| Int 3 3-6 | lanczos-width | Width of the Lanczos function
| Double 1.00 -inf - +inf | x | Horizontal shear amount
| Double 1.00 -inf - +inf | y | Vertical shear amount
| gegl:snn-mean
| Noise reducing edge enhancing blur filter based on Symmetric Nearest Neighbours
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| int 8 0-100 | radius | Radius of square pixel region, (width and height will be radius*2+1)
| Int 2 1-2 | pairs | Number of pairs; higher number preserves more acute features
| gegl:soft-light

SVG blend operation soft-light (`if 2 * cA < aA: d = cB * (aA - (aB == 0 ? 1 : 1 - cB / aB) * (2 * cA - aA)) + cA * (1 - aB) + cB * (1 - aA); if 8 * cB <= aB: d = cB * (aA - (aB == 0 ? 1 : 1 - cB / aB) * (2 * cA - aA) * (aB == 0 ? 3 : 3 - 8 * cB / aB)) + cA * (1 - aB) + cB * (1 - aA); otherwise: d = (aA * cB + (aB == 0 ? 0 : sqrt (cB / aB) * aB - cB) * (2 * cA - aA)) + cA * (1 - aB) + cB * (1 - aA)`)

| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| gegl:stress
| Spatio Temporal Retinex-like Envelope with Stochastic Sampling
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| int 300 2-5000 | radius | Neighborhood taken into account, for enhancement ideal values are close to the longest side of the image, increasing this increases the runtime
| int 5 2-200 | samples | Number of samples to do per iteration looking for the range of colors
| int 5 1-200 | iterations | Number of iterations, a higher number of iterations provides a less noisy rendering at a computational cost
| gegl:stretch-contrast
| Scales the components of the buffer to be in the 0.0-1.0 range. This improves images that make poor use of the available contrast (little contrast, very dark, or very bright images).
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| gegl:subtract
| Math operation subtract (c = c - value)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Double 0.00 -inf - +inf | value | global value used if aux doesn't contain data
| gegl:svg-huerotate
| SVG color matrix operation svg_huerotate
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| String | values | list of <number>s
| gegl:svg-load
| Load an SVG file using librsvg
| Object | output | Output pad for generated image buffer.
| FilePath | path | Path to SVG file to load
| Int 100 1- +inf | width | Width for rendered image
| Int 100 1- +inf | height | Height for rendered image
| gegl:svg-luminancetoalpha
| SVG color matrix operation svg_luminancetoalpha
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| String | values | list of <number>s
| gegl:svg-matrix
| SVG color matrix operation svg_matrix
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| String | values | list of <number>s
| gegl:svg-multiply
| SVG blend operation svg-multiply (`d = cA * cB + cA * (1 - aB) + cB * (1 - aA)`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| gegl:svg-saturate
| SVG color matrix operation svg_saturate
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| String | values | list of <number>s
| gegl:text
| Display a string of text using pango and cairo.
| Object | output | Output pad for generated image buffer.
| Multiline Hello | string | String to display (utf8)
| String Sans | font | Font family (utf8)
| Double 10.00 1.00-2048.00 | size | Approximate height of text in pixels.
| Color rgb(0.0000, 0.0000, 0.0000) | color | Color for the text (defaults to 'white')
| Int -1 -1-1000000 | wrap | Sets the width in pixels at which long lines will wrap. Use -1 for no wrapping.
| Int 0 0-2 | alignment | Alignment for multi-line text (0=Left, 1=Center, 2=Right)
| Int 0 0-1000000 | width | Rendered width in pixels. (read only)
| Int 0 0-1000000 | height | Rendered height in pixels. (read only)
| gegl:threshold
| Thresholds the image to white/black based on either the global value set in the value property, or per pixel from the aux input.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Double 0.50 -10.00-10.00 | value | Global threshold level (used when there is no auxiliary input buffer).
| gegl:transform
| Transforms the group (used by svg).
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -inf - +inf | origin-x | X coordinate of origin
| Double 0.00 -inf - +inf | origin-y | Y coordinate of origin
| String linear | filter | Filter type (nearest, linear, lanczos, cubic, lohalo)
| Boolean False | hard-edges | Hard edges
| Int 3 3-6 | lanczos-width | Width of the Lanczos function
| String | transform | Transformation string
| gegl:translate
| Repositions the buffer (with subpixel precision), if integer coordinates are passed a fast-path without resampling is used
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -inf - +inf | origin-x | X coordinate of origin
| Double 0.00 -inf - +inf | origin-y | Y coordinate of origin
| String linear | filter | Filter type (nearest, linear, lanczos, cubic, lohalo)
| Boolean False | hard-edges | Hard edges
| Int 3 3-6 | lanczos-width | Width of the Lanczos function
| Double 1.00 -inf - +inf | x | Horizontal translation
| Double 1.00 -inf - +inf | y | Vertical translation
| gegl:unsharp-mask
| Performs an unsharp mask on the input buffer (sharpens an image by adding false mach-bands around edges)
| Double 1.00 0.00-500.00 | std-dev | Standard deviation (spatial scale factor)
| Double 1.00 0.00-100.00 | scale | Scale, strength of effect
| gegl:v4l
| Video4Linux input, webcams framegrabbers and similar devices.
| Object | output | Output pad for generated image buffer.
| FilePath /dev/video0 | path | Path to v4l device
| Int 320 0- +inf | width | Width for rendered image
| Int 240 0- +inf | height | Height for rendered image
| Int 0 0- +inf | frame | current frame number, can be changed to trigger a reload of the image.
| Int 0 0- +inf | fps | autotrigger reload this many times a second.
| gegl:value-invert
| Inverts just the value component, the result is the corresponding `inverted' image.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| gegl:vector-stroke
| Renders a vector stroke
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Color rgba(0.0000, 0.0000, 0.0000, 0.0000) | color | Color of paint to use for stroking.
| Double 2.00 0.00-200.00 | width | The width of the brush used to stroke the path.
| Double 1.00 -2.00-2.00 | opacity | Opacity of stroke, note, does not behave like SVG since at the moment stroking is done using an airbrush tool.
| String | transform | svg style description of transform.
| Path | d | A GeglVector representing the path of the stroke
| gegl:vignette
| A vignetting op, applies a vignette to an image. Simulates the luminance fall off at edge of exposed film, and some other fuzzier border effects that can naturally occur with analoge photograpy.
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Int 0 0-2 | shape | Shape to use: 0=circle 1=diamond 2=square
| Color rgb(0.0000, 0.0000, 0.0000) | color | Defaults to 'black', you can use transparency here to erase portions of an image
| Double 1.50 0.00-3.00 | radius | How far out vignetting goes as portion of half image diagonal
| Double 0.80 0.00-1.00 | softness | Softness
| Double 2.00 1.00-20.00 | gamma | Falloff linearity
| Double 1.00 0.00-1.00 | proportion | How close we are to image proportions
| Double 0.00 -1.00-1.00 | squeeze | Aspect ratio to use, -0.5 = 1:2, 0.0 = 1:1, 0.5 = 2:1, -1.0 = 1:inf 1.0 = inf:1, this is applied after proportion is taken into account, to directly use squeeze factor as proportions, set proportion to 0.0.
| Double 0.50 -1.00-2.00 | x | Horizontal center of vignetting
| Double 0.50 -1.00-2.00 | y | Vertical center of vignetting
| Double 0.00 0.00-360.00 | rotation | Rotation angle
| gegl:waves
| Transform the buffer with waves
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Double 0.00 -inf - +inf | x | X coordinate of the center of the waves
| Double 0.00 -inf - +inf | y | Coordinate y of the center of the waves
| Double 25.00 0.00-1000.00 | amplitude | Amplitude of the ripple
| Double 200.00 0.00-1000.00 | period | Period of the ripple
| Double 0.00 -1.00-1.00 | phi | Phase shift
| Enum | sampler-type | Sampler used internally
| gegl:weighted-blend
| blend two images using alpha values as weights
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| Double 0.00 -inf - +inf | value | global value used if aux doesn't contain data
| gegl:write-buffer
| A GEGL buffer destination surface.
| Object | input | Input pad, for image buffer input.
| Object | buffer | Write to an existing GeglBuffer
| svg:clear
| Porter Duff operation clear (d = 0.0f)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:color-burn
| SVG blend operation color-burn (`if cA * aB + cB * aA <= aA * aB: d = cA * (1 - aB) + cB * (1 - aA) otherwise: d = (cA == 0 ? 1 : (aA * (cA * aB + cB * aA - aA * aB) / cA) + cA * (1 - aB) + cB * (1 - aA))`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:color-dodge
| SVG blend operation color-dodge (`if cA * aB + cB * aA >= aA * aB: d = aA * aB + cA * (1 - aB) + cB * (1 - aA) otherwise: d = (cA == aA ? 1 : cB * aA / (aA == 0 ? 1 : 1 - cA / aA)) + cA * (1 - aB) + cB * (1 - aA)`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:darken
| SVG blend operation darken (`d = MIN (cA * aB, cB * aA) + cA * (1 - aB) + cB * (1 - aA)`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:difference
| SVG blend operation difference (`d = cA + cB - 2 * (MIN (cA * aB, cB * aA))`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:dst
| Porter Duff operation dst (d = cB)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:dst-atop
| Porter Duff operation dst-atop (d = cB * aA + cA * (1.0f - aB))
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:dst-in
| Porter Duff operation dst-in (d = cB * aA)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:dst-out
| Porter Duff operation dst-out (d = cB * (1.0f - aA))
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:dst-over
| Porter Duff operation dst-over (d = cB + cA * (1.0f - aB))
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:exclusion
| SVG blend operation exclusion (`d = (cA * aB + cB * aA - 2 * cA * cB) + cA * (1 - aB) + cB * (1 - aA)`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:hard-light
| SVG blend operation hard-light (`if 2 * cA < aA: d = 2 * cA * cB + cA * (1 - aB) + cB * (1 - aA) otherwise: d = aA * aB - 2 * (aB - cB) * (aA - cA) + cA * (1 - aB) + cB * (1 - aA)`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:lighten
| SVG blend operation lighten (`d = MAX (cA * aB, cB * aA) + cA * (1 - aB) + cB * (1 - aA)`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:overlay
| SVG blend operation overlay (`if 2 * cB > aB: d = 2 * cA * cB + cA * (1 - aB) + cB * (1 - aA) otherwise: d = aA * aB - 2 * (aB - cB) * (aA - cA) + cA * (1 - aB) + cB * (1 - aA)`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:plus
| SVG blend operation plus (`d = cA + cB`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:screen
| SVG blend operation screen (`d = cA + cB - cA * cB`)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:src
| Porter Duff operation src (d = cA)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:src-atop
| Porter Duff operation src-atop (d = cA * aB + cB * (1.0f - aA))
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:src-in
| Porter Duff operation src-in (d = cA * aB)
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:src-out
| Porter Duff operation src-out (d = cA * (1.0f - aB))
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:src-over
| Porter Duff operation src-over (d = cA + cB * (1.0f - aA))
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:src-over
| Porter Duff operation over (d = cA + cB * (1 - aA))
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.
| svg:xor
| Porter Duff operation xor (d = cA * (1.0f - aB)+ cB * (1.0f - aA))
| Object | output | Output pad for generated image buffer.
| Object | input | Input pad, for image buffer input.
| Object | aux | Auxiliary image buffer input pad.