GIMP
GIMP (GNU Image Manipulation Program) is a free and open-source raster graphics editor designed for tasks such as photo retouching, image composition, and graphic design elements creation, including icons and user interface components.[1] It supports high-quality photo manipulation, original artwork production, and scientific visualization, while offering extensibility through scripts and plugins in languages like C, C++, Python, and Scheme.[1] Available as cross-platform software for GNU/Linux, macOS, Windows, and other operating systems, GIMP is licensed under the GNU General Public License (GPL), ensuring it remains freely distributable and modifiable by the community.[2] Development of GIMP began in July 1995 as a semester-long project at the University of California, Berkeley, initiated by programmers Spencer Kimball and Peter Mattis to create an intuitive image manipulation program akin to commercial tools like Photoshop, with built-in support for plug-ins via pipes and shared memory.[3] Originally titled the General Image Manipulation Program, it was renamed to GNU Image Manipulation Program to affiliate with the GNU Project, emphasizing its commitment to free software principles.[3] The first beta release arrived in November 1995, supporting formats like GIF, JPEG, PNG, TIFF, and XPM, along with basic editing tools, followed by version 0.54 in February 1996, which added TGA and PNM support and introduced plans for layers and interface improvements.[3] By 1998, community contributions had expanded its capabilities, leading to the stable GIMP 1.0 release, marking its evolution into a robust, user-driven tool.[4] Over the years, GIMP has undergone significant enhancements, including advanced color management for digital and print workflows, integration with tools like Scribus for desktop publishing and Inkscape for vector graphics, and ongoing development by a global volunteer community.[1] The program reached version 2.0 in 2004, introducing a revamped interface, while version 3.0, released on March 16, 2025, brought modern updates such as non-destructive editing, improved performance, better tablet support, and enhanced API for extensions after seven years of collaborative effort.[5] Today, GIMP stands as a versatile alternative to proprietary software, powering professional and amateur workflows in graphic design, photography, and digital art.[1]Overview
Description and purpose
GIMP, the GNU Image Manipulation Program, is a cross-platform, open-source raster graphics editor designed for creating, editing, and manipulating images on operating systems such as GNU/Linux, macOS, and Windows. It functions as a free alternative to proprietary tools like Adobe Photoshop, providing robust capabilities for raster-based workflows with some support for basic vector tasks.[1][2][6] The program's core purposes encompass photo retouching to correct and enhance images, image composition for combining multiple elements into cohesive visuals, and authoring graphic design components such as icons or illustrations, along with generating simple animations through layered frame sequences. These functions make it suitable for a range of creative and practical applications, emphasizing accessibility and versatility in digital imaging.[2][7] GIMP's key capabilities include multi-layer editing, enabling users to stack, blend, and organize image elements with various layer modes for non-destructive modifications; support for high-bit-depth images via floating-point precision to preserve detail in color grading and exposure adjustments; and an extensible architecture that accommodates plugins and scripting for custom tools and workflows. As an integral part of the GNU Project, GIMP upholds free software principles by being licensed under the GNU General Public License, which grants users the rights to use, study, modify, and distribute the software freely. It caters to hobbyists experimenting with digital art, professionals in photography and graphic design, and educators teaching image manipulation concepts.[7][8]Licensing and availability
GIMP is released under the GNU General Public License version 3 (GPL-3.0-or-later), a copyleft license that guarantees users the freedom to run, study, share, and modify the software, with the requirement that any derivative works be distributed under the same license terms.[9] This license ensures that the complete source code is always available, allowing developers and users to inspect, alter, and improve the program while preserving the freedoms for all recipients.[9] As part of the GNU Project, GIMP aligns with the principles of the Free Software Foundation (FSF), which authored the GPL to promote software freedom through its copyleft mechanism; this mandates that modifications cannot be proprietary and must include the source code, preventing the creation of closed-source versions based on GIMP.[1][9] The software is freely available at no cost from the official website, gimp.org, where pre-built binary installers are provided for major operating systems including Windows, macOS, and various GNU/Linux distributions.[10] Community-maintained packages further enhance accessibility, such as the official Flatpak available through Flathub, an official Snap package released in October 2025, and AppImage formats for portable Linux deployment.[11][12] Under the GPL, users have the legal right to redistribute GIMP in its original or modified form without fees, provided they include the full license text, copyright notices, and warranty disclaimers, while attributing the original authors and ensuring source code availability to recipients.[9] Although the core software is gratis, optional donations support ongoing development, channeled through the GNOME Foundation or platforms like Liberapay to fund volunteer efforts and infrastructure.[13][14]History
Origins and early development
GIMP originated in the summer of 1995 as a semester-long academic project undertaken by two computer science students, Spencer Kimball and Peter Mattis, at the University of California, Berkeley.[4] The project stemmed from their desire to develop a freely available image manipulation program for Unix-like systems, particularly to serve users of the emerging GNU/Linux operating system who lacked access to proprietary software such as Adobe Photoshop.[3] Mattis initiated the effort by posting queries to relevant X11 and Linux newsgroups in late July 1995, seeking input on essential features and file formats for a graphical image editor, emphasizing an intuitive interface for operations like viewing, editing, and saving images in formats including GIF, JPEG, and TIFF.[3] The first public beta announcement followed in November 1995, with the inaugural stable release, version 0.54, arriving in February 1996.[3] This version, written primarily in the C programming language and utilizing the Motif widget toolkit, targeted Unix-like platforms and introduced core raster graphics capabilities, including selection tools, transformation operations, painting brushes, effects filters, a plug-in architecture for extensibility, and multiple undo/redo functionality.[3] Although functional, the software faced early limitations, such as dependency on the commercially licensed Motif library, which restricted broader adoption, and an initial emphasis on basic editing without advanced layering support.[4] By 1997, as Kimball and Mattis graduated and shifted focus to professional pursuits, the project transitioned under community stewardship, incorporating key enhancements in version 0.99 released in February.[4] This update introduced layered image editing, a tile-based memory management system for handling larger files, and the new XCF native format, while replacing Motif with the newly developed GTK+ toolkit to improve accessibility and pave the way for integration with the emerging GNOME desktop environment announced that August.[4] The same year saw the adoption of Wilber, an anthropomorphic mascot designed by artist Tuomas Kuosmanen before September, which became a symbolic emblem for the project and appeared in documentation and interfaces.[15] Early challenges persisted, including the absence of a Windows port until late 1997 with experimental builds for version 1.1, reflecting the project's initial Unix-centric academic roots and gradual expansion to other platforms.[16]Major milestones and releases
GIMP achieved its first stable release with version 1.0 on June 5, 1998, introducing a reliable user interface and establishing a robust plugin API that allowed third-party developers to extend functionality without altering the core application.[4] This milestone marked the transition from experimental development to a production-ready tool, solidifying GIMP's position as a viable open-source alternative for image editing.[4] The release of GIMP 2.0 on March 23, 2004, represented a comprehensive overhaul, migrating to the GTK2+ toolkit for enhanced dockable dialogs and improved tab navigation, alongside a restructured codebase that boosted overall stability.[17] Additionally, it added CMYK color support in the color selection dialog, enabling better compatibility for print workflows.[17] These changes addressed long-standing usability issues and expanded GIMP's appeal to professional users. In 2012, GIMP 2.8, released on May 3, introduced a single-window mode option to streamline the interface for users preferring a more integrated layout, while advanced brush dynamics enhanced support for graphics tablets through pressure-sensitive controls and customizable parameters.[18] This version built on prior improvements by incorporating layer groups and on-canvas text editing, further refining the tool's efficiency for complex compositions.[18] GIMP 2.10, launched on April 27, 2018, initiated deeper integration with the GEGL library for advanced image processing and introduced support for high-bit-depth editing, allowing non-destructive workflows with 16-bit and 32-bit per channel precision.[19] These enhancements improved color accuracy and performance, marking a significant step toward modern raster editing capabilities.[20] After seven years of development addressing technical challenges from the 2010s, GIMP 3.0 was released on March 16, 2025, updating to the GTK3 toolkit for a refreshed user interface, implementing non-destructive filters via layer effects, and optimizing HiDPI scaling for high-resolution displays.[21] This long-awaited upgrade resolved accumulated delays in porting and feature maturation, delivering a more responsive and future-proof application.[5] Subsequent maintenance releases, such as 3.0.6 on October 6, 2025, focused on refinements including usability improvements to sliders and fixes for transparency handling in layered compositions.[22] Beyond version releases, key milestones include the adoption of community-driven funding through platforms like Patreon in the 2010s, which supported sustainable developer contributions and infrastructure needs.[23] GIMP has also maintained active participation in events like FOSDEM, with presentations on development progress, such as the 2025 keynote on version 3.0 and future directions.[24]Development
Core team and contributors
The development of GIMP is led by a small core team of maintainers, with Michael Natterer (also known as Ell) and Jehan Guibaud serving as primary leaders since the 2010s, overseeing code reviews, release planning, and strategic direction.[25] These maintainers coordinate the project's evolution through the GNOME-hosted GitLab repositories, ensuring alignment with open-source principles.[26] The core team consists of approximately 10-20 active developers who contribute the majority of commits to the main repository, supported by hundreds of occasional contributors across code, documentation, and artwork—totaling over 250 code contributors historically.[27][25] In 2025, Gabriele Barbero and Ondřej Míchal were added to the core team following their GSoC contributions.[22] Ongoing efforts focus on GIMP 3.2, with early vector layer support merged.[28] This structure fosters a collaborative environment where regular participants handle core enhancements, while broader involvement comes from global volunteers.[29] Contributions to GIMP follow structured guidelines via the project's GitLab instance for code patches and merge requests, bug reporting through the official issue tracker on gimp.org, and dedicated translation teams that localize the software into numerous languages.[30][31] Newcomers are encouraged to start with documentation updates or minor fixes before advancing to complex features.[32] Funding for the core team primarily comes from community donations through Patreon campaigns launched in the mid-2010s to support full-time development, alongside contributions to the GNOME Foundation that indirectly sustain GIMP work.[13][23] These efforts enable maintainers like Jehan Guibaud to focus on priorities such as the GEGL integration.[23] The team engages with the open-source community at events like FOSDEM 2025, where members presented on the GIMP 3.0 roadmap and non-destructive editing features, and GNOME's GUADEC, highlighting ongoing collaboration within the GNOME ecosystem.[24][33] To promote inclusivity, GIMP adopts a code of conduct emphasizing respectful communication and diverse participation, drawing from international contributors in Europe, Asia, and beyond, particularly in translation efforts.[34][6] This approach supports a welcoming environment for volunteers worldwide.[34]Underlying technologies and tools
GIMP is primarily written in the C programming language, which forms the core of its implementation for performance-critical operations such as image processing and rendering.[35] This choice enables efficient handling of complex graphical computations while maintaining portability across platforms. Additionally, GIMP supports scripting and plugin development in Python through its Python-Fu interface, allowing users to extend functionality with high-level scripts.[36] The graphical user interface of GIMP is built using the GTK+ framework, specifically version 3 and later in GIMP 3.0 and subsequent releases, which provides cross-platform widget support and theming capabilities.[37] GTK+ originated as the GIMP ToolKit, developed specifically for GIMP before being adopted more broadly in projects like GNOME.[38] This integration ensures a consistent, native look and feel on Linux, Windows, and macOS. Central to GIMP's image manipulation capabilities are the BABL and GEGL libraries. BABL handles pixel format conversions and color management, supporting a wide range of color spaces and precision levels to ensure accurate representation of image data.[39] GEGL, the Generic Graphics Library, provides a graph-based processing engine for non-destructive operations, introduced initially in GIMP 2.10 and fully integrated in 3.0 for pixel-level manipulations.[35] These libraries decouple the core engine from the user interface, enabling modular extensions and improved scalability. GIMP's build system transitioned to Meson starting with version 2.10, which simplifies compilation and supports alternative backends like CMake for flexibility across development environments.[35] Key dependencies include GLib for foundational data structures and utilities, Pango for text layout and rendering, and Cairo for 2D vector graphics acceleration.[40] These components ensure robust internationalization, efficient drawing, and compatibility with system fonts and graphics hardware. Performance optimizations in GIMP leverage multi-threading for filters and operations via GEGL since version 3.0, distributing workloads across CPU cores to accelerate processing of large images.[41] SIMD instructions are employed in brush engines, particularly for MyPaint-compatible brushes, to enhance real-time painting responsiveness by vectorizing pixel computations.[42] Among ongoing developments, off-canvas editing remains partially implemented, allowing limited manipulation of content beyond visible boundaries but lacking full viewport controls. Full vector support is on the roadmap for future releases like 3.2, aiming to integrate scalable paths and shapes as native layer types.[28]User interface
Main components and layout
GIMP's user interface is organized around a central workspace designed for efficient image editing, with the default single-window mode introduced as an option in version 2.8 and established as the standard starting configuration in subsequent releases like 2.10 and 3.0.[43][44] In this mode, all essential elements are consolidated into one main application window, featuring a left panel for the toolbox and tool options, a central canvas for the image, and a right panel for docked dialogs such as layers and selectors. This layout minimizes window clutter and facilitates workflow by keeping tools and image previews readily accessible.[45] Users can switch to the legacy multi-window mode, which separates the toolbox, dialogs, and image windows into independent frames, by unchecking the "Single-Window Mode" option in the Windows menu.[44] The toolbox, positioned in the left panel of the single-window mode, serves as the primary hub for selecting and activating editing tools, categorized into groups such as selection tools (e.g., rectangle, ellipse, free select), paint tools (e.g., brush, pencil, airbrush), and transform tools (e.g., scale, rotate, perspective).[46] Below the toolbox, the tool options dialog dynamically displays parameters for the active tool, allowing real-time adjustments like brush size or opacity. The layers panel, docked in the right panel by default, provides a hierarchical view of the image's layer stack, enabling users to manage visibility, opacity, blending modes, and layer ordering through drag-and-drop interactions.[45] Adjacent to it are selectors for brushes, gradients, patterns, and palettes, which offer previews and quick access to customizable resources for painting and filling operations.[47] At the heart of the interface is the canvas, the editable area displaying the active image, which supports intuitive interactions for navigation and precision work. Users can zoom in or out using the mouse wheel or dedicated buttons, pan across large images by dragging with the middle mouse button or spacebar, and utilize guides—non-printing lines for alignment—that can be created, moved, or snapped to via the rulers or View menu.[44] In GIMP 3.0, enhancements to guides allow for more advanced off-canvas extensions, integrating seamlessly with features like auto-expanding layers to extend the workspace beyond initial image bounds.[21] The tabbed document interface within single-window mode handles multiple images efficiently, displaying them as tabs at the top of the canvas area for easy switching, with support for drag-and-drop to reorder or detach tabs into new windows.[44] GIMP 3.0 introduces significant improvements for high-resolution displays, including better HiDPI scaling that addresses previous issues with tiny icons and text on high-DPI screens through the upgrade to GTK3, providing smoother fractional scaling and overall interface adaptability.[21] This ensures the layout remains legible and functional across diverse hardware, from standard monitors to 4K or higher setups, without requiring manual tweaks for most users.Customization and accessibility
GIMP offers extensive options for personalizing its user interface to suit individual preferences and workflows. Users can select from various themes, including light and dark modes, through the GTK toolkit's theming system, which allows for system-wide or application-specific configurations such as Adwaita icons in version 3.0.[48] Custom CSS styling is also supported via GTK, enabling advanced users to modify the appearance of widgets, buttons, and dialogs for a tailored look.[49] Icon sets can be changed in the preferences, with GIMP 3.0 introducing improved integration with modern GTK icon themes like Adwaita for a more consistent desktop experience.[21] The interface features dockable dialogs that allow users to rearrange panels dynamically, grouping related tools such as layers, brushes, and tool options into customizable docks. These docks can be resized, tabbed, or floated as separate windows, providing flexibility in layout organization. Workspaces can be saved and restored via the "Windows" menu, preserving custom arrangements for different tasks like photo retouching or illustration.[50] Keyboard shortcuts in GIMP are fully remappable through the dedicated Keyboard Shortcuts dialog, accessible from Edit > Keyboard Shortcuts, where users can assign new keys to commands, tools, or filters. Preset schemes, including defaults and emulations like Photoshop shortcuts, are available for import or selection, facilitating adaptation for users transitioning from other software.[51][52] Accessibility is enhanced through GTK's built-in features, including high-contrast themes that improve visibility for low-vision users by increasing color differentiation in the UI. Screen reader compatibility is provided via the AT-SPI interface on Linux, allowing tools like Orca to navigate menus and dialogs, though support may vary on Windows. For color-blind users, GIMP includes display filters simulating conditions like deuteranomaly or protanopia, aiding in UI and image preview evaluation, alongside options for color management adjustments.[53][54][55] GIMP supports a range of input devices, particularly graphics tablets, with pressure sensitivity mapped to brush dynamics like size, opacity, and flow for natural drawing experiences. This is achieved through drivers such as Wintab on Windows and XInput on Linux, supporting stylus tilt, rotation, and basic gestures for enhanced precision in creative tasks.[56][57] Localization efforts make GIMP accessible globally, with translations available in over 80 languages, maintained by a diverse community of contributors. Right-to-left (RTL) script handling is fully integrated in version 3.0, including proper text alignment in layers and dialogs for languages like Arabic and Hebrew.[6][58][21]Core editing features
Basic tools and operations
GIMP's basic tools and operations enable users to perform essential image manipulations, such as isolating regions, applying colors, and adjusting geometry, forming the foundation for routine editing tasks. These tools are accessible via the Toolbox and associated option dialogs, allowing precise control over everyday workflows like retouching photos or creating simple graphics.[59] Selection tools in GIMP allow users to isolate specific areas of an image for targeted editing without affecting the rest. The Rectangle Select tool creates rectangular selections by dragging a corner handle, supporting options like fixed aspect ratio to maintain proportions during crops or resizes, rounded corners for softer edges, and expansion from the center. Similarly, the Ellipse Select tool draws elliptical or circular selections, with modes for perfect circles, fixed sizes, and aspect ratios, ideal for selecting rounded objects like eyes or buttons in portraits. For irregular shapes, the Free Select tool (Lasso) lets users draw freehand paths by clicking and dragging, closing the selection automatically upon returning to the start point, or using polygonal mode for straight-line segments to outline complex boundaries efficiently. The Fuzzy Select tool, also known as the Magic Wand, selects contiguous pixels based on color similarity from a clicked point, adjustable via a threshold value to include similar hues or expand across small gaps, making it suitable for isolating uniform backgrounds or solid-colored regions.[60] Painting tools provide versatile methods for adding or modifying colors directly on the canvas. The Brush tool simulates traditional painting with customizable brushes, where dynamics such as size, opacity, and flow respond to stylus pressure or velocity for natural strokes, enabling smooth blending in areas like skin retouching. In contrast, the Pencil tool draws hard-edged lines at pixel level, ideal for precise outlines or pixel art, with options to lock alpha channels to preserve transparency during coloring. The Airbrush tool applies color continuously based on how long the cursor is held, simulating spray paint with flow rates that build up opacity gradually, useful for soft shading or creating misty effects in illustrations. Common to these tools are brush dynamics, which map input like pressure to attributes such as brush size (scaling from 1 to 1000 pixels), opacity (0-100% transparency), and flow (rate of color application), enhancing expressiveness in freehand work. Transformation tools facilitate geometric adjustments to images or selections. The Scale tool resizes elements proportionally or non-uniformly via drag handles, with options to interpolate pixels for smooth results and preserve aspect ratios by constraining width or height. Rotation occurs around the center or a pivot point using the Rotate tool, supporting arbitrary angles entered numerically or via mouse drag, essential for straightening horizons in photographs. The Flip tool mirrors content horizontally, vertically, or along a custom axis, reversing pixels without quality loss, commonly used for correcting scanned text or symmetrizing designs. For advanced distortion, the Perspective tool warps selections into trapezoids by dragging corner handles, simulating depth like in architectural corrections, with a preview cage for interactive adjustments. These operations apply to layers or selections, with the Unified Transform tool combining scale, rotate, shear, and perspective in one interface for efficient multi-step edits. Fill and stroke operations efficiently apply colors to defined areas. The Bucket Fill tool floods a selection or contiguous region with foreground color, background color, or patterns, using thresholds to match similar pixels and modes like normal or pattern fill for seamless integration in backgrounds. The Gradient tool creates smooth transitions between two or more colors across a selection, offering linear, radial, or angular patterns, with options to reverse direction or repeat for effects like sky gradients in landscapes. Strokes can be applied to paths or selections using these tools, outlining boundaries with consistent width and anti-aliasing for clean edges. Cropping and resizing manage image dimensions effectively. The Crop tool trims the canvas by dragging a rectangular frame, with guides for rule-of-thirds composition and options to fix aspect ratios or sizes, automatically discarding pixels outside the boundary while preserving image quality. For overall resizing, the Scale Image command adjusts pixel dimensions via interpolation methods like cubic for sharpness, maintaining aspect ratios by default to avoid distortion, suitable for preparing files for web use. Canvas size modifications expand or contract the working area without altering content, adding transparent borders or cropping edges as needed, with offset controls for positioning. GIMP's undo/redo system supports non-destructive experimentation through an infinite history mechanism, storing operations in a tree structure accessible via the Undo History dialog. Users navigate steps with Edit > Undo or Ctrl+Z, viewing a timeline of changes to revert or branch edits, limited only by available memory for extensive sessions. This feature ensures flexibility in basic operations, allowing quick recovery from mistakes across tools like selections and transforms.Selections, paths, and masks
GIMP offers robust mechanisms for isolating and refining specific regions of an image through selections, paths, and masks, allowing users to perform targeted edits while preserving the integrity of unaffected areas.[61] Selections form the foundation for region definition and can be combined or modified using dedicated modes. In add mode, activated by holding the Shift key during tool use, new areas are appended to the existing selection, enabling cumulative buildup of complex shapes from multiple tool applications like rectangles or ellipses. Subtract mode, invoked with Ctrl, removes overlapping regions from the current selection, refining boundaries by excision. Intersect mode, using Shift+Ctrl, preserves only the common areas between the active selection and the new one, ideal for isolating precise overlaps. These operations support antialiasing and feather previews in tool options for smoother results.[61] For softer boundaries, the Feather Edges command applies a gradual blur to selection perimeters, creating transitional zones that prevent harsh cutouts. Accessed via Select → Feather..., it requires specifying a radius (default in pixels, adjustable units available), which determines the feather width; a larger value yields broader blending. An option ensures selected areas extend beyond image edges if needed, maintaining consistent feathering at borders. This technique is essential for compositing elements with natural gradients.[62] Selections can be dynamically resized using Grow and Shrink commands under the Select menu. Grow expands the selection outward by a user-defined distance, incorporating adjacent pixels and smoothing irregular edges, with parameters mirroring feathering: pixels (or other units) and border continuation options. Shrink, conversely, contracts inward by the same metric, eroding the outline while preserving overall topology, though it may round sharp corners. Both commands operate non-destructively on the active selection, facilitating iterative refinement without tool recreation.[63][64] The Paths tool provides vector-based precision for defining outlines via Bézier curves, surpassing raster selections in scalability and editability. Activated from the toolbox (or "B" key), it operates in modes like Design for initial drawing—clicking anchors and dragging handles to form curves or straight segments (polygonal option available)—Edit for node manipulation (add/remove with Ctrl, move with Alt), and Move for repositioning entire paths. Bézier handles enable tangent control for smooth arcs, with Shift ensuring symmetric adjustments. Paths store as editable vectors in the Paths dialog, independent of image resolution.[65] Paths integrate seamlessly with selections through bidirectional conversion. To generate a selection from a path, select it in the Paths dialog and click "Selection from Path," which outlines the curve with marching ants and auto-closes open paths via straight lines. This process loses raster feathering but gains vector accuracy for subsequent fills or edits. Stroking a path, via the dialog's button or Edit → Stroke Path, renders it with customizable brushes, lines, or patterns along the curve, supporting dash styles and end caps for artistic effects. For interoperability, GIMP exports paths to SVG format directly from the Paths dialog (right-click → Export Path), preserving them as vector entities; conversely, it imports SVG paths for editing or conversion to selections. SVG files can also open as raster images in GIMP, with paths extractable.[66][65][67] Quick Mask mode transforms selection refinement into a painting workflow, representing the mask as a visible overlay for intuitive adjustments. Toggle it via the image window's bottom-left button; if a selection exists, it initializes the mask accordingly, tinting non-selected areas (default: 50% opaque red, customizable in preferences). Paint with black to deselect (hide), white to select (reveal), or grays for partial transparency based on shade intensity—darker grays yield lower opacity. Standard paint tools, including brushes and erasers, apply directly without disrupting the mask structure; the Bucket Fill tool can also flood areas. Invert the mask via Select → Invert if needed. Deactivate to revert to standard view, converting the painted mask back to a precise selection outline. This mode excels for organic, hand-refined boundaries on irregular subjects.[68] Layer masks enable non-destructive concealment of layer regions, attaching a grayscale channel that controls per-pixel visibility without altering pixel data. Add one through Layer → Mask → Add Layer Mask..., initializing as full white (visible), from a selection (grayscale conversion), channel, or grayscale layer; the dialog offers transfer options like "Transfer layer's alpha channel." In mask-editing mode (Layer → Mask → Edit Layer Mask or Shift-click the mask thumbnail), paint tools modify it—black hides content, white reveals, grays blend proportionally—allowing reversible tweaks via opacity or erase operations. Masks support feathering and can be disabled temporarily (Layer → Mask → Disable Layer Mask) or applied permanently (Layer → Mask → Apply Layer Mask) to merge effects. Conversion to selections (e.g., Mask to Selection) facilitates further manipulation, with variants for adding, subtracting, or intersecting. This approach is pivotal for compositing, as edits remain adjustable until applied.[69][70] Selections tie into alpha channels for granular transparency control, where alpha encodes opacity per pixel (0 for transparent, 255 for opaque). The Alpha to Selection command (Layer → Transparency → Alpha to Selection) derives a selection from the active layer's alpha, fully selecting opaque regions, excluding transparent ones, and partially selecting translucent pixels based on their values—replacing any prior selection. Complementary operations include Add Alpha to Selection (appends to existing), Subtract Alpha from Selection (removes overlapping), and Intersect with Alpha (retains common areas), all preserving the alpha intact for iterative use. Adding an alpha channel to a layer (Layer → Transparency → Add Alpha Channel) is prerequisite for transparency support, enabling selections to drive per-pixel masking in raster workflows.[71]Advanced editing features
Layers, channels, and effects
GIMP supports a variety of layer types to facilitate complex image composition, including pixel-based layers for raster editing, text layers for typography, group layers for organization, and adjustment layers for non-destructive modifications introduced in version 3.0.[21] Pixel layers serve as the foundational elements, allowing direct pixel manipulation through painting and drawing tools.[72] Text layers, created via the Text tool, enable editable text integration as vector-like objects within the raster workflow.[73] Group layers organize multiple sublayers hierarchically, while adjustment layers apply operations like brightness-contrast without altering underlying pixels permanently.[21] GIMP 3.0 introduces multiple layer selection using standard shortcuts (e.g., Shift or Ctrl+click) and layer search by name in the Layers dialog for improved organization.[21] Blending modes determine how a layer's pixels interact with those beneath it, categorized into groups such as Normal, Lighten, Darken, Contrast, Inversion, HSV components, and LCh components.[74] Common modes include Normal for standard overlay, Multiply for darkening by multiplying color values, and Overlay for enhancing contrast by combining Multiply and Screen effects.[74] These modes enable creative effects like simulating light interactions or color adjustments directly in the layer stack.[72] Channels in GIMP represent individual color components or transparency, accessible via the Channels dialog for targeted editing. RGB channels allow independent manipulation of red, green, and blue separations, while the alpha channel controls per-pixel opacity. CMYK support includes import/export and soft-proofing for print workflows, but editing occurs in RGB with color space conversions applied as needed; primary operations remain RGB-centric. GIMP 3.0 adds multiple channel selection using standard shortcuts.[21] Users can duplicate channels to preserve originals for selections or backups and merge them to combine data destructively into a single channel. In GIMP 3.0, layer effects such as drop shadow are implemented as non-destructive filters, applicable via the Fx menu or filter browser without rasterizing the base layer.[75] These effects generate procedural overlays, adjustable in real-time, supporting workflows where modifications can be toggled or refined iteratively.[6] Other effects like bevel and emboss can be applied using GEGL filters in non-destructive workflows. Layer masks and group hierarchies enhance compositional control, with masks defining visible areas grayscale-based (white for full opacity, black for transparency).[72] Groups support nesting, where sublayers or subgroups are indented in the Layers dialog, allowing hierarchical organization without depth limits.[76] Opacity controls apply uniformly to activated groups, scaling transparency across all child elements from 0% (invisible) to 100% (fully opaque).[76] Text layers offer advanced styling, including font family selection, size adjustment, and precise kerning via numeric controls for letter spacing.[73] Path-based text conforms glyphs to vector paths, wrapping content along curves for effects like arched lettering, with each character editable as a path component.[73] Merging layers combines visible content into a single pixel layer, a destructive process that discards individual editability, while flattening the entire image rasterizes all layers into one, eliminating the stack for final output.[77] Non-destructive workflows rely on maintaining separate layers and masks, preserving flexibility until explicit merging occurs.[6]Color management and adjustments
GIMP primarily operates in the RGB color model for image editing, with support for conversions to and from other models such as CMYK for print workflows and HSV for intuitive color adjustments. GIMP 3.0 expands RGB support to wide-gamut color spaces beyond sRGB, such as Adobe RGB, for improved accuracy in professional workflows.[21] The Color Picker tool enables users to sample colors from an image, displaying values in RGB, HSV, or other selectable formats to facilitate precise color selection and matching.[78][79] For color corrections, GIMP provides several adjustment tools accessible via the Colors menu. In GIMP 3.0, many of these can be applied non-destructively as editable filters via the Fx menu.[21] The Levels tool adjusts the tonal range by modifying input and output levels across shadows, midtones, and highlights, allowing users to enhance contrast and correct exposure without altering the overall color balance. The Curves tool offers more granular control, enabling point-based adjustments to the tone curve for individual RGB channels or overall luminosity, which is particularly useful for fine-tuning brightness, contrast, and color grading.[80] Additionally, the Hue-Saturation tool permits targeted shifts in hue, saturation, and lightness for specific color ranges, such as adjusting skin tones or foliage without affecting the entire image.[81] The Color Balance tool fine-tunes the distribution of cyan-red, magenta-green, and yellow-blue components across shadows, midtones, and highlights, aiding in the correction of color casts from lighting conditions.[82] Color management in GIMP relies on ICC profiles to ensure consistent color representation across devices. Users can assign or convert images to specific ICC profiles via the Image > Color Management menu, supporting workflows that maintain color accuracy from editing to output.[83] Soft-proofing simulates the appearance of an image under a target output device, such as a printer, by applying the device's ICC profile to the display; GIMP 3.0 improves this with a status bar icon for quick toggling and right-click options for CMYK profiles and rendering intents. This feature, activated through View > Proof Colors or the status bar, helps anticipate gamut limitations and adjust colors preemptively for print.[21] The Gradient Editor dialog allows creation and customization of gradients, supporting linear, radial, and other shapes with adjustable interpolation methods like smooth or stepped blending. Users can define color stops, reverse directions, and save custom gradients for reuse in fills or patterns.[84][85] Palette management facilitates consistent color use through the Palettes dialog, where users can create, edit, and organize named color sets as swatches. These palettes store predefined colors for quick access, supporting indexed images and ensuring uniformity in projects like web graphics or branding. GIMP 3.0 supports high-bit-depth colors in palettes with floating-point precision.[21] Since version 2.10, GIMP has supported high-bit-depth editing with 16-bit integer or 32-bit floating-point precision per channel, enabling smoother gradients and reduced banding in images with subtle tonal variations, particularly beneficial for photographic editing.[19][86]Extensibility and integration
Automation, scripts, and plug-ins
GIMP supports extensibility through scripting and plug-ins, enabling users to automate repetitive tasks and add custom functionality such as filters, tools, and batch operations. Scripts and plug-ins interact with GIMP's core via the Procedure Database (PDB), a collection of callable functions that expose image manipulation capabilities. This architecture allows for non-interactive processing and integration of advanced algorithms without modifying the base application.[87] Scripting in GIMP primarily uses two languages: Script-Fu, based on the Scheme dialect via the Guile interpreter, and Python-Fu, leveraging Python for more complex logic. Script-Fu scripts, saved as .scm files, are ideal for quick procedural generation and simple automations, with built-in registration to appear in menus like Filters > Script-Fu. Python-Fu extends this with object-oriented features and external library integration, registered via .py files and accessible through the Python console for interactive testing. Both provide APIs for batch processing, allowing scripts to handle multiple images sequentially, such as resizing or applying filters en masse.[87][88][89] Plug-ins extend GIMP's functionality beyond scripting by implementing custom tools, filters, or interfaces in compiled code. The architecture is C-based, with plug-ins compiled as loadable shared libraries—DLL files on Windows or .so files on Unix-like systems—that run as separate processes invoked by the GIMP core. These can register new PDB procedures for tasks like image effects or data import/export, supporting both procedural and graphical interfaces via GTK. Python and Script-Fu can also serve as plug-ins, bridging interpreted code with the binary architecture for hybrid extensions.[90][91] Built-in automation includes command-line batch mode, invoked via the-b or --batch option to execute scripts non-interactively on files or directories. For example, gimp -b "(script-fu-example 1 'input.jpg' 'output.jpg')" -b "(gimp-quit 0)" processes images without launching the GUI. While GIMP lacks a native macro recorder, actions are recordable through PDB calls in scripts, enabling users to capture and replay sequences like layer adjustments or selections for workflow efficiency.
Popular scripts and plug-ins include BIMP (Batch Image Manipulation Plugin), which provides a GUI for applying multiple GIMP operations—like cropping, rotating, or color corrections—to batches of images via Script-Fu integration. Another widely used extension is G'MIC, a plug-in offering over 600 filters for artistic effects, denoising, and repairs, leveraging C-based operations for high-performance image processing.[92][93]
Installation of scripts and plug-ins occurs in user-defined directories, configurable via Edit > Preferences > Folders > Plug-ins or Scripts. GIMP automatically scans these paths (e.g., ~/.config/GIMP/3.0/plug-ins on Linux) on startup, loading compatible files without manual intervention. Users place .scm or .py files for scripts and compiled binaries for plug-ins, with restarts or rescans ensuring activation.[87][94]
GEGL framework and non-destructive editing
The GEGL (Generic Graphics Library) serves as the foundational framework for advanced image processing in GIMP, enabling non-destructive workflows through a graph-based architecture that processes pixels in a pipeline without permanently altering source data. Introduced as the core engine in GIMP 2.10, GEGL replaces earlier pixel manipulation systems with a data flow model that supports high-bit-depth operations and floating-point precision across the entire image stack.[19][95] At its core, GEGL operates via nodes connected in a directed acyclic graph (DAG), where each node represents an operation such as a filter, color adjustment, or composition. This structure allows users to build complex processing chains— for instance, applying a Gaussian blur followed by a sharpen operation—while preserving the original image layers intact, as computations are deferred until rendering. Such graph-based operations facilitate iterative editing, where nodes can be reordered, modified, or removed at any time without recomputing unaffected portions of the image.[96][97] GIMP 3.0 marked a significant advancement in leveraging GEGL for user-facing non-destructive editing, introducing adjustable filters like blur, sharpen, and color balance that apply effects as editable layer properties rather than baking them into pixels immediately. Layer effects, such as drop shadows or bevels, can now be tweaked post-application through a dedicated effects panel, with real-time previews updating via GEGL's on-canvas rendering. This shift contrasts with prior versions, where filters merged destructively upon application, and is limited to GEGL-native operations for compatibility.[21][5] In development builds toward GIMP 3.1, a new GEGL filter browser was added to streamline discovery and previewing of available operations, accessible via the Help menu for interactive testing of effects before application. This tool enhances usability by categorizing and visualizing GEGL nodes, aiding both novice and advanced users in constructing non-destructive stacks.[42] GEGL's performance optimizations are critical for practical use, employing on-demand (lazy) processing to compute only visible or required image regions and incorporating multi-threading to parallelize operations across CPU cores, which significantly reduces wait times for large, high-resolution files. For example, filtering a multi-layer 8K image benefits from thread pooling in GEGL's buffer management, minimizing memory overhead compared to full-image rasterization.[97][98] Despite these strides, GEGL's implementation of full non-destructive transforms remains partial in GIMP 3.0, with geometric operations like scaling or rotation not yet fully reversible without quality loss in all cases. Upcoming releases, such as 3.2, aim to address this through features like linked layers, which allow synchronized non-destructive adjustments across multiple layers while maintaining original fidelity.[99][42]File handling
Supported formats
GIMP's native file format is XCF (eXtended Color Format), which supports saving layered images while preserving all editing data, including layers, channels, masks, layer groups, and non-destructive adjustments. This format ensures full fidelity for ongoing projects but is not intended for final distribution due to its proprietary structure. For raster image imports and exports, GIMP natively handles a wide range of common formats, including JPEG for lossy compression suitable for web use, PNG for lossless transparency and alpha channels, TIFF for high-quality print workflows with support for multiple layers and high bit depths, BMP for simple uncompressed bitmap storage, and WebP for efficient web-optimized images with full support since version 2.10, including animation and lossless modes. These formats allow seamless integration with standard image workflows, though options like JPEG quality levels and PNG compression can be adjusted during export to balance file size and quality.[100] GIMP 3.0 adds support for additional formats, including ICNS for macOS icons, CUR and ANI for Windows cursors and animations, ILBM/IFF for Amiga graphics, QOI for quick lossless images, JPEG XL for modern compression, DCX for multi-page TIFF variants, PAM for portable anymap, and WBMP for wireless bitmaps. It also improves PSD compatibility with import/export of clipping paths, CMYK profiles, and metadata.[21] GIMP provides partial support for vector graphics through basic import and export of SVG (Scalable Vector Graphics) files, primarily for paths and shapes, which are rasterized upon import to fit the program's pixel-based editing model. For compatibility with Adobe Photoshop, GIMP offers read and write support for PSD files, enabling opening of layered PSD documents and saving with preserved layers, though advanced features like adjustment layers or smart objects may not transfer perfectly. Export to animated GIF is also supported, allowing frame-by-frame assembly with options for looping, delays, and optimization to reduce file size. Metadata embedding, such as EXIF or ICC profiles, is available in formats like JPEG and TIFF during export.[67][101] Limitations include no native support for RAW camera files, which require external plug-ins like those integrating Darktable or RawTherapee for processing. HEIF and AVIF formats have partial support, covering basic import and export but with constraints on high bit-depth and animation features depending on system libraries. Batch format conversion is possible through scripting with tools like the built-in Batch mode or Script-Fu, enabling automated processing of multiple files across supported formats.[6][102]Import, export, and compatibility
GIMP supports intuitive import processes, including drag-and-drop functionality that allows users to open files by dragging them onto the toolbox window or add them as new layers by dropping into an existing image canvas.[103] This method extends to multiple files, enabling batch opening in a single session, though the order may vary due to processing race conditions on some platforms.[104] For layered formats like PSD, GIMP preserves layer structures during import, maintaining hierarchies, masks, and blending modes where supported, facilitating seamless workflows with Adobe Photoshop files.[105] Export workflows in GIMP are designed for versatility across web and print media, with the Export dialog providing format-specific options such as compression levels for JPEG suited to web optimization or high-bit-depth preservation for print-ready TIFF files.[106] Color management integrates prompts for sRGB conversion during import of non-sRGB images, ensuring compatibility for web display by default assigning GIMP's built-in sRGB profile unless overridden in preferences.[107] Users can configure export behaviors to embed or discard ICC profiles, supporting targeted outputs like sRGB for online publishing or device-specific profiles for professional printing.[108] Compatibility features enhance interoperability with other software, particularly through PSD round-trip editing where layers remain intact upon re-import after export, a capability refined since GIMP 2.10 to include additional blending modes like pass-through and linear light.[109] Basic support for Adobe Illustrator AI files is achieved via PDF-based import, allowing rasterization of vector content while preserving paths as editable elements, though complex vector effects may flatten.[110] Clipboard integration enables copy-paste operations between GIMP and external applications, with alpha channel transparency preserved when pasting as new layers or images, provided the source clipboard format supports it.[111] GIMP 3.0 includes general improvements to HiDPI support, providing sharper visuals on high-resolution displays.[21] These updates ensure more reliable outputs for modern workflows involving web graphics and retina-ready assets. For automated processes, import and export operations are fully scriptable via Python-Fu or Script-Fu, allowing users to create batch chains for processing multiple files, such as loading PSDs, applying adjustments, and exporting to optimized formats programmatically.[87]Distribution and versions
Supported platforms and installation
GIMP is a cross-platform application natively supported on GNU/Linux, macOS, and Microsoft Windows operating systems.[1] On GNU/Linux, it integrates seamlessly as a native application, leveraging the system's graphical environment. For macOS, support includes both Intel x86_64 and Apple Silicon ARM64 architectures, with a minimum requirement of macOS 11 Big Sur or later.[112] Microsoft Windows versions target Windows 10 and later, with builds utilizing MSVC for official releases and MinGW as an option for custom compilations.[113][114] Installation methods vary by platform to accommodate different user preferences and environments. On GNU/Linux distributions, GIMP can be installed through package managers such as apt on Debian-based systems or dnf on Fedora-based systems, as well as via universal formats like Flatpak, AppImage, and Snap for broader compatibility and sandboxing.[10][115] For Microsoft Windows, official MSI installers provide a standard setup experience, while portable ZIP archives allow running without system-wide installation, ideal for USB drives or temporary use.[10] On macOS, users download DMG files for direct installation, or employ Homebrew for command-line management, which may require XQuartz to enable X11-based features like certain dialogs.[10] These methods ensure accessibility without mandatory administrative privileges in many cases. Dependencies are handled differently across platforms to optimize performance and ease of deployment. Windows and macOS installers bundle essential libraries, including GTK for the user interface, babl and GEGL for image processing, and other components like libpng and OpenEXR, reducing external setup needs.[40] In contrast, GNU/Linux relies on system-provided libraries installed via package managers, promoting integration with the host distribution but potentially requiring manual resolution of unmet dependencies like glib-networking for HTTPS support.[40] Hardware requirements emphasize compatibility for smooth operation, particularly with GIMP's graphical features. Accelerated rendering relies on OpenGL support, with a graphics card compatible with OpenGL 3.3 or higher recommended for canvas interactions and effects previews. A minimum of 4 GB RAM is advised for GIMP 3.0 to handle typical image editing workflows without excessive swapping, though 16 GB is preferable for larger projects or multitasking.[116] CPU architecture support includes x86_64 and ARM64, with no strict processor speed minimum beyond general modern standards. For advanced users, GIMP's open-source nature enables cross-compilation from source code to target embedded or niche systems, such as Raspberry Pi or custom Linux variants, using tools like Meson and Ninja build systems.[40] The GIMP 3.0 release introduces native ARM64 optimization on macOS for improved performance on Apple Silicon hardware and enhanced Wayland protocol support on GNU/Linux, reducing reliance on X11 and improving high-DPI display handling.[21]Release history
GIMP's release history spans nearly three decades, beginning with its initial stable version in 1998 and evolving through irregular major updates punctuated by frequent minor releases focused on stability and bug fixes. The project maintains a volunteer-driven development model, with major versions introducing foundational changes such as UI overhauls and integration of new libraries like GEGL, while micro-releases address regressions and usability issues. As of November 2025, the stable series is 3.0.x, with active development on 3.1.x leading to 3.2.[117][5] The following table summarizes key releases, highlighting major features and stability status:| Version | Release Date | Major Features | Stability |
|---|---|---|---|
| 1.0 | June 5, 1998 | First stable release with core image editing tools and plugin architecture. | Stable[4] |
| 2.0 | March 24, 2004 | Tabbed dialogs, improved layer support, and enhanced scripting. | Stable[17][118] |
| 2.10 | April 27, 2018 | GEGL port for high-bit-depth processing, non-destructive filters in select tools, multi-threaded operations, and dark theme support. | Stable[20] |
| 3.0 | March 16, 2025 | Full non-destructive editing with on-canvas previews, GTK3 migration, multi-layer selection, improved color management, and support for new formats like BC7 DDS. | Stable[5][21] |
| 3.0.6 | October 6, 2025 | Bug fixes for printing in sandboxed environments, cursor handling in sliders, transparency in exports, and UI stability; includes 38 commits in Flatpak build. | Stable[22] |