GIMP/ɡɪmp/ (GNU Image Manipulation Program) is a raster graphics editor used for image retouching and editing, free-form drawing, resizing, cropping, photo-montages, converting between different image formats, and more specialized tasks. Developers and maintainers of GIMP strive to create a high-end free app for creating and editing original images, photos, icons, graphical elements of web pages, and art for graphical user interface elements.
GIMP was originally released as the General Image Manipulation Program, by creators Spencer Kimball and Peter Mattis. Development of GIMP began in 1995 as a semester-long project at the University of California, Berkeley; the first public release of GIMP (0.54) was made in January 1996. When Richard Stallman visited UC Berkeley the following year, Kimball and Mattis asked him if they could change General to GNU (the name of the operating system created by Stallman). With Stallman's approval, the definition of the acronym GIMP was changed to mean the GNU Image Manipulation Program, which also reflects its existence under the GNU Project. GIMP is developed by a self-organized group of volunteers under the banner of the GNOME Project.
The number of computer architectures and operating systems supported has expanded significantly since its first release. The first release supported UNIX systems such as Linux, SGI IRIX and HP-UX. Since the initial release, GIMP has been ported to many operating systems, including Microsoft Windows and OS X; the original port to the Windows 32-bit platform was started by Finnish programmer Tor Lillqvist (tml) in 1997 and was supported in the GIMP 1.1 release.
GIMP saw formation of a community and rapid adoption following the first release. The community that formed began developing tutorials, artwork and shared better work-flows and techniques.
A new GUI tool kit called GTK+ (GIMP tool kit) was developed to facilitate the development of GIMP. GTK+ replaced its predecessor GTK (no plus symbol) after being redesigned using object-oriented programming techniques. The development of GTK+ has been attributed to Peter Mattis becoming disenchanted with the Motif toolkit GIMP originally used; Motif was used up until GIMP 0.60.
GIMP's fitness for use in professional environments is regularly reviewed and as such often cited as a possible replacement for Adobe Photoshop. The maintainers seek to fulfill GIMP's product vision rather than replicate the interface of Adobe Photoshop.
GIMP 2.6 has been reviewed twice by Ars Technica. In the first review, Ryan Paul noted that GIMP provides "Photoshop-like capabilities and offers a broad feature set that has made it popular with amateur artists and open source fans. Although GIMP is generally not regarded as a sufficient replacement for high-end commercial tools, it is beginning to gain some acceptance in the pro market." Dave Girard also reviewed GIMP 2.6, specifically with the aim of testing GIMP's fitness for professional tasks. He noted at the beginning that GIMP was a high-end tool, but the review conclusion noted that, although many of GIMP's tools were of high quality, he felt that GIMP lacked in some areas such as non-destructive editing, and that it was missing select tools (such as a desaturation brush).
The single-window mode of GIMP 2.8 was reviewed by Ryan Paul of Ars Technica, who noted that it made the user experience feel "more streamlined and less cluttered".
GIMP is primarily developed by volunteers as a free software project under the banner of the GNU project. Development takes place in a public gitsource code repository, on public mailing lists and in public chat channels on the GIMPNET IRC network.
New features are held in public separate source code branches and merged into the main (or development) branch when they are able to be merged into GIMP without knowingly damaging existing functionality. Sometimes this means that features that appear complete do not get merged or take months or years before they are available in GIMP.
GIMP itself is released as source code. After a source code release installers and packages are made for different operating systems by parties who may or may not be in contact with the maintainers of GIMP.
The version number used in GIMP is expressed in a major-minor-micro format, with each number carrying a specific meaning: The first (major) number is incremented only for major developments (and is currently 2). The second (minor) number is incremented with each release of new features, with odd numbers reserved for in-progress development versions and even numbers assigned to stable releases; the third (micro) number is incremented before and after each release (resulting in even numbers for releases, and odd numbers for development snapshots) with any bugfixes subsequently applied and released for a stable version.
Each year GIMP applies for several positions in the Google Summer of Code (GSoC); to date GIMP has participated in all years except 2007. From 2006 to 2009 there have been nine GSoC projects that have been listed as successful, although not all successful projects have been merged into GIMP yet. The healing brush and perspective clone tools and Ruby bindings were created as part of the 2006 GSoC and can be used in the current[when?] version of GIMP, although there were three other projects that were completed and are not yet available in a stable version of GIMP; those projects being Vector Layers, and a JPEG 2000 plug-in. Several projects were completed in 2008, but none are yet a part of a stable release of GIMP.[clarification needed]
GIMP, version 2.8.0 RC1 demonstrating single-window mode
The user interface of GIMP is designed by a dedicated design and usability team. This team was formed after the developers of GIMP signed up to join the OpenUsability project.[dead link] A user interface brainstorming group has since been created for GIMP, where users of GIMP can send in their suggestions as to how they think the GIMP user interface could be improved.
GIMP is presented in two forms, single and multiple window mode; GIMP 2.8 defaults to the multiple window mode. In multiple window mode a set of windows contain all GIMPs functionality. By default, tools and tool settings are on the left and other dialogues are on the right.
GTK+ (GIMP tool kit) is used to create the graphical user interface. GTK+'s creation and history regarding GIMP is described in the history section above.
The Libre Graphics Meeting (LGM) is a yearly event where developers of GIMP and other projects meet up to discuss issues related to free and open source graphics software. The GIMP developers hold birds of a feather (BOF) sessions at this event.
The current version of GIMP works with numerous operating systems, including Linux, OS X and Microsoft Windows. Many Linux distributions include GIMP as a part of their desktop operating systems, including Fedora and Debian.
A port of GIMP to Microsoft Windows was started by Tor Lillqvist in 1997. The GIMP website links to binary installers compiled by Jernej Simončič for the platform.MacPorts is listed as the recommended provider of recent Mac builds of GIMP.[dead link] GTK+ was originally designed to run on an X11 server. Because OS X can optionally use an X11 server, porting GIMP to OS X is simpler compared to creating a Windows port. GIMP is also available as part of the Ubuntu noroot package from the Google Play Store on Android.
Animation Showing Brushes, Patterns, Gradients Created in GIMP on Mac OS X Lion
Tools used to perform image editing can be accessed via the toolbox, through menus and dialogue windows. They include filters and brushes, as well as transformation, selection, layer and masking tools.
There are several ways of selecting colors including palettes, color choosers and using an eyedropper tool to select a color on the canvas. The built-in color choosers include RGB/HSV selector or scales, water-color selector, CMYK selector and a color-wheel selector. Colors can also be selected using hexadecimal color codes as used in HTML color selection. GIMP has native support for indexed color and RGB color spaces; other color spaces are supported using decomposition where each channel of the new color space becomes a black and white image. CMYK, LAB and HSV (hue, saturation, value) are supported this way. Color blending can be achieved using the blend tool, by applying a gradient to the surface of an image and using GIMP's color modes. Gradients are also integrated into tools such as the brush tool, when the user paints this way the output color slowly changes. There are a number of default gradients included with GIMP; a user can also create custom gradients with tools provided.
Selections and paths
There are tools for creation of selections include a rectangular and circular selection tool, free select tool, and fuzzy select tool (also known as magic wand). More advanced selection tools include the select by color tool for selecting contiguous regions of color and the scissors select tool which creates selections semi-automatically between areas of highly contrasting colors. GIMP also supports a quick mask mode where a user can use a brush to paint the area of a selection. Visibly this looks like a red colored overlay being added or removed. The foreground select tool is an implementation of Simple Interactive Object Extraction (SIOX) a method used to perform the extraction of foreground elements, such as a person or a tree in focus. The Paths Tool allows a user to create vectors (also known as Bézier curves). Paths can be used to create complex selections around natural curves, paths can also be named, saved, and painted (or "stroked") with brushes, patterns, or various line styles.
There are many tools that can be used for editing images in GIMP. The more common tools include a paint brush, pencil, airbrush, eraser and ink tools used to create new or blended pixels. Tools such as the bucket fill and blend tools are used to change large regions of space in an image and can be used to help blend images. GIMP also has a selection of smart tools, which use a more complex algorithm to enable a user to do things that otherwise would be time consuming or impossible; these smart tools include the clone tool that copies pixels using a brush, the healing brush which copies pixels from an area and corrects the tone and color where it is being used. The perspective clone tool works in a similar way to the clone tool previously mentioned but also allows a user to correct for distance changes. The blur and sharpen tool is a brush that blurs and sharpens. Finally, the dodge and burn tool is a brush that makes target pixels lighter (dodges) or darker (burns). A list of GIMP transform tools include the align tool, move, crop, rotate, scale, shear, perspective and flip tools.
Animation showing three docked and tabbed dialogs: layers, channels, and paths.
An image being edited in GIMP can consist of many layers in a stack. The user manual suggests that "A good way to visualize a GIMP image is as a stack of transparencies," where in GIMP terminology, each transparency is a layer. Each layer in an image is made up of several channels. In an RGB image there are normally 3 or 4 channels, each consisting of a red, green and blue channel. Color sublayers look like slightly different gray images, but when put together they make a complete image. The fourth channel that may be part of a layer is the alpha channel (or layer mask). This channel measures opacity where a whole or part of an image can be completely visible, partially visible or invisible. Each layer has a layer mode which can be set to change the colors in the image.
Text layers can be created using the text tool, allowing a user to write on an image. Text layers can be transformed in several ways, such as converting them to a path or selection.
GIMP has approximately 150 standard effects and filters, including Drop Shadow, Blur, Motion Blur and Noise. GIMP operations can be automated with scripting languages. The Script-Fu is a Scheme based extension language implemented using TinyScheme. GIMP can also be scripted in Perl, Python (Python-fu), or Tcl. New features can be added to GIMP not only by changing program code (GIMP core), but also by creating plug-ins. These are external programs that are executed and controlled by the main GIMP program. MathMap is an example of a plug-in written in C.
There is support for several methods of sharpening and blurring images including the blur and sharpen tool. The unsharp mask tool is used to sharpen an image selectively — it only sharpens areas of an image that are sufficiently detailed. The Unsharp Mask tool is considered to give more targeted results for photographs than a normal sharpening filter. The Selective Gaussian Blur tool works in a similar way, except it blurs areas of an image with little detail.
The Generic Graphics Library (GEGL) was first introduced as part of GIMP on the 2.6 release of GIMP. This initial introduction does not yet exploit all of the capabilities of GEGL; as of the 2.6 release, GIMP can use GEGL to perform high bit-depth color operations; because of this less information is lost when performing color operations. When fully integrated, GEGL will allow GIMP to have a higher color bit depth and also a better non-destructive work-flow.
GIMP supports importing and exporting with a large number of different file formats, GIMP's native format XCF is designed to store all information GIMP can contain about an image; XCF is named after the eXperimental Computing Facility where GIMP was authored.
Import and export
GIMP has import and export support for image formats such as BMP, JPEG, PNG, GIF and TIFF, along with the file formats of several other applications such as Autodesk flic animations, Corel Paint Shop Pro images, and Adobe Photoshop documents. Other formats with read/write support include PostScript documents, X bitmap image, xwd, and Zsoft PCX. GIMP can also read and write path information from SVG files and read/write ICO Windows icon files.
GIMP can import Adobe PDF documents and the raw image formats used by many digital cameras, but cannot save to these formats. An open source plug-in, UFRaw, adds full raw compatibility, and has been noted for being quicker than Adobe in updating for new camera models, several times.
GIMP can export to MNG layered image files (Linux version only) and HTML (as a table with colored cells), C source code files (as an array) and ASCII Art (using a plug-in to represent images with characters and punctuation making up images), though it cannot read these formats.
Because of the free and open-source nature of GIMP, several forks, variants and derivatives of the computer program have been created to fit the needs of their creators. While GIMP is available for popular operating systems, variants of GIMP may be OS-specific. These variants, however, are neither hosted nor linked on the GIMP website. (The GIMP website does not host GIMP builds for Windows or Unix-like operating systems either, although it does include a link to a Windows build.)
Well-known variants include:
CinePaint: Formerly "Film Gimp", it is a fork of GIMP version 1.0.4, used for frame-by-frame retouching of feature film. CinePaint supports up to 32-bit IEEE-floating point color depth per channel, as well as color management and HDR. CinePaint is used primarily within the film industry due mainly to its support of high-fidelity image formats. It is available for BSD, Linux, and OS X.
GIMP classic: A patch against GIMP v2.6.8 source code created to undo changes made to the user interface in GIMP v2.4 through v2.6. A build of GIMP classic for Ubuntu is available. As of March 2011, a new patch can be downloaded from the SourceForge site that patches against the experimental GIMP v2.7.
GIMP Portable: A portable version of GIMP for Microsoft Windows XP or later that preserves brushes and presets between computers
A GIMP plug-in for creating animations. GAP can save animations in several formats including GIF and AVI. The animation function relies on GIMP's layering and image file name numbering capability. Animations are created either by placing each frame on its own layer (in other words, treating each layer as an animation cel), or by manipulating each numbered file as if it were a frame in the video: moving, rotating, flipping, changing colors, applying filters, etc. to the layers by taking advantage of interpolation within function calls(plug-in usage), within a specified frame range. The resulting project can be saved as an animated GIF or encoded video file. GAP also provides programmed layer transitions, frame rate change, and move paths, allowing the creation of sophisticated animations.
GIMP Paint Studio (GPS)
A collection of brushes and accompanying tool presets, aimed at artists and graphic designers. It speeds up repetitive tasks and allows tool settings to be saved between sessions.