The first version of this guide began with the price of Photoshop. That was honest, but it left out the useful part. A subscription pushed me towards GIMP; photographs kept it installed.
The old header image shows a photograph of Piran harbour open in GIMP 2.x. Looking at that screenshot now, I notice how little it explains. There is one photograph, one layer and a forest of unfamiliar icons. It proves that GIMP can open a JPEG. It does not show how I would turn that file into a finished image.
This version does.
I still like Photoshop. I also like having an editor that is free, open source and available on Windows, macOS and Linux. That last point originally mattered to me because I wanted software that would not decide which operating system I could use. It still matters, even though changing operating systems is rarely as effortless as an application’s download page makes it appear.
At the time of this update, the current stable release is GIMP 3.2.4. The 3.2 series added link layers, vector layers and further non-destructive tools, while 3.2.4 concentrated on stability, compatibility and security fixes. It is a much more capable program than the one shown in my 2023 screenshot. It is also still unmistakably GIMP: powerful, occasionally awkward and better once I stop expecting it to behave exactly like an Adobe product.
The short answer: is GIMP good for photo editing?
Yes. GIMP is good enough for most of the work I do after a photograph has been selected: cropping, straightening, tonal correction, colour work, local adjustments, removing small distractions, resizing, sharpening and preparing a file for the web.
It is less convincing as an entire photography system. It does not replace a Lightroom-style catalogue, and I do not treat it as my first destination for RAW files. For a RAW photograph, I develop the negative in Darktable or RawTherapee, then move the rendered image into GIMP for detailed work.
That distinction saves a lot of frustration.
| GIMP is strong at | I use another tool when I need |
|---|---|
| Layer-based editing | A large searchable photo catalogue |
| Masks and precise local corrections | Fast editing across hundreds of photographs |
| Retouching with Heal and Clone | A complete RAW-development workflow |
| Compositing and removing backgrounds | Flawless round-tripping with complex PSD files |
| Preparing JPEG, PNG, WebP and TIFF files | A fully mature CMYK and spot-colour print workflow |
| High-bit-depth editing | Adobe-specific collaboration, actions or plug-ins |
For a photographer who edits one image carefully, GIMP can be excellent. For a photographer returning from a wedding with 3,000 RAW files, it is the wrong place to begin.
What changed in GIMP 3.2
GIMP 3.0 laid the groundwork for a more modern editor, including initial non-destructive filters, better high-DPI support and a newer interface toolkit. GIMP 3.2 extended that work.
The most relevant additions for photographers are not the loudest ones:
- Link layers can reference an external image and keep transformations such as scaling and rotation editable. If the source changes, the layer can update with it.
- Vector layers preserve editable paths, fills and strokes. They matter more for mixed photo-and-design work than for straightforward correction, but they make GIMP more useful for finished web graphics.
- Non-destructive GEGL filters let me keep many effects editable instead of permanently baking every decision into pixels.
- Better text, format and interface support makes it easier to move from a corrected photograph to a finished graphic without leaving the program.
I would not confuse these features with complete Photoshop parity. GIMP’s own development roadmap still lists work around adjustment-layer workflows, PSD compatibility and high-end CMYK production. Link layers are useful, but they are not identical to Photoshop Smart Objects. The direction is encouraging; the workflow still has its own limits.
GIMP 3.2 does not yet have a finished 3.2 manual, so the project currently recommends its GIMP 3.0 documentation for most tools. The menus described below follow that documentation and the 3.2 interface.
Install GIMP without inheriting somebody else’s problem
I download GIMP from the official GIMP download page. The official 3.2.4 release is available for 64-bit Windows, Intel and Apple silicon Macs, and several 64-bit Linux formats, including AppImage, Flatpak and Snap.
This is not just tidiness. Image editors invite plug-ins, scripts and third-party builds, and those are programs running with my user permissions. I install only what I can identify, and I keep the list short. A brush pack is one thing; an unsigned installer from a download site I have never heard of is another.
The GIMP team also fixed security issues in several image-import plug-ins in 3.2.4. That is a good reason to keep the application current, especially if I open files sent by other people.
Start with the right file
Before touching a slider, I decide what kind of file I am actually editing. A RAW file, a camera JPEG and a phone image may show the same scene, but they do not contain the same amount of recoverable information.
If the photograph is RAW
GIMP relies on an external RAW processor. In its import preferences, it recognises programs such as Darktable and RawTherapee as RAW plug-ins. I prefer to think of that hand-off as part of the workflow, not as an inconvenience.
In the RAW processor, I make the decisions that belong closest to the digital negative:
- Choose the camera profile and white balance.
- Correct the broad exposure.
- Recover highlights and open shadows while the RAW data is still available.
- Apply lens correction and chromatic-aberration correction.
- Set noise reduction conservatively.
- Send the result to GIMP, or export a 16-bit TIFF with its colour profile embedded.
Once a highlight is clipped in an 8-bit JPEG, GIMP cannot reconstruct the original sensor data. It can soften the transition or borrow pixels from elsewhere, but it cannot retrieve detail that never arrived in the file.
If the photograph is JPEG, HEIF, PNG or TIFF
I open it directly in GIMP. If the image contains an embedded colour profile, I normally preserve or convert it deliberately rather than dismissing the colour-management prompt without reading it.
For repeated tonal work, I may change the image through Image → Precision to a higher precision. Promoting an 8-bit JPEG does not invent missing colour or detail; it simply gives later calculations more room and reduces the risk of banding or rounding errors as adjustments accumulate.
| Starting file | My first move | What I watch for |
|---|---|---|
| RAW | Develop in Darktable or RawTherapee | Highlight recovery, lens correction, noise |
| Camera JPEG | Open directly, then save an XCF working copy | Limited highlight latitude and compression artefacts |
| Phone HEIF/JPEG | Check orientation, colour and sharpening | Aggressive phone processing and HDR tone mapping |
| TIFF | Preserve bit depth and embedded profile | Very large files and storage use |
| PNG | Open directly | Transparency and unnecessarily large photo files |
My practical GIMP photo-editing workflow
There is no single correct order for every photograph. Still, a stable sequence prevents me from polishing pixels that I will later crop away or sharpening an image before I know its final size.
My usual order is:
- Save a working XCF file.
- Inspect the histogram and image edges.
- Straighten and crop.
- Correct global exposure and contrast.
- Correct colour.
- Make local adjustments with layers and masks.
- Retouch small distractions.
- Reduce noise if necessary.
- Resize for the destination.
- Sharpen at the final size.
- Export and inspect the exported file.
1. Save an XCF before the edit becomes complicated
I begin with File → Save As and create an XCF file. XCF is GIMP’s working format. It retains layers, masks, paths and other project structure that a normal JPEG cannot preserve.
Then I duplicate the original layer and rename the layers. “Original,” “Tone,” “Retouch” and “Sharpen” are dull names, which is precisely why they work. “Copy #7” is not useful at midnight.
I keep the original layer at the bottom and leave it untouched. This is not perfectly non-destructive in the technical sense, but it gives me a reliable visual reference and an easy way back.
One limitation is worth remembering: XCF does not preserve the undo history after the file is closed. Layers and masks survive; the sequence of Ctrl+Z steps does not. If a decision matters, I represent it in the layer stack rather than trusting the history panel.
2. Read the photograph before correcting it
I zoom out until I can see the entire frame, then zoom in to 100 per cent for focus, noise, dust and compression. Both views matter. At 300 per cent, every photograph becomes a medical emergency. At fit-to-window size, small but visible problems disappear.
I also open the histogram. I am not trying to force it into a perfect mountain. A night photograph should contain dark pixels; a foggy scene may have little contrast. I use the histogram to spot clipping and gaps, not to dictate what the scene is allowed to look like.
Before making adjustments, I ask three questions:
- Where does my eye go first?
- Is that where the photograph’s subject actually is?
- Which problem is global, and which problem belongs only to one part of the frame?
The third question decides whether I need a simple correction or a mask.
3. Straighten first, crop second
A slightly tilted horizon can make a careful edit feel careless. In GIMP, the Measure tool includes a Straighten function. I drag a line along the horizon—or along a vertical that should truly be vertical—and apply the correction. “Crop to result” removes the empty wedges created by rotation.
After that, I use the Crop tool. I remove accidental edges, check the subject’s breathing room and choose an aspect ratio for the intended destination.
I try not to use cropping as an automatic attempt to make every composition tighter. Empty space can be the structure of a photograph. The useful crop removes indecision, not merely pixels.
4. Fix exposure before chasing colour
GIMP offers several tools that seem to do the same thing. They do not. I choose the smallest tool that solves the problem.
| Problem I see | Tool I try first | Menu | Main risk |
|---|---|---|---|
| Entire frame is too dark or bright | Exposure | Colors → Exposure | Clipping highlights or crushing shadows |
| Black and white points are weak | Levels | Colors → Levels | Forcing every image to full contrast |
| Midtones need shaped contrast | Curves | Colors → Curves | Creating harsh transitions or colour shifts |
| Backlit scene has blocked shadows | Shadows-Highlights | Colors → Shadows-Highlights | Flat, artificial-looking local contrast |
| Image needs a quick, broad correction | Brightness-Contrast | Colors → Brightness-Contrast | Less control than Levels or Curves |
I do not apply all five because they are available. Often a small Exposure change and one gentle curve are enough.
Exposure
The Exposure filter is useful when the middle and darker tones need to move without immediately sacrificing every highlight. I watch bright clouds, white shirts, chrome and specular reflections while I adjust it. The preview is more important than the number.
Levels
Levels lets me set black, white and midpoint values. I bring the outer points in only when the histogram shows unused range and the picture benefits from it. I do not make the shadows pure black merely because the slider can reach them.
Curves
Curves is where I shape contrast rather than simply add it. A very shallow S-curve can give the image separation: a slight lift in the brighter midtones and a slight drop in the darker midtones. Large moves create a processed look quickly.
If the curve changes the colour in a way I do not want, I reconsider the layer mode or work on the appropriate channel. The goal is not to make the graph elegant. The goal is to make the photograph read clearly.
Shadows-Highlights
This tool can rescue a backlit face or dark foreground, but it is easy to recognise when overused: shadows turn grey, edges develop halos and the whole frame begins to resemble an HDR preset. I use it as recovery, not as a style.
5. Correct colour with a neutral reference—or with restraint
White balance is partly measurement and partly interpretation. A white wall under a streetlight does not always need to become laboratory white. If I remove all of the warm light, I may remove the reason I photographed the scene.
For a clear temperature problem, I start with Colors → Color Temperature. For a more selective cast, Colors → Color Balance gives separate control over shadows, midtones and highlights. Hue-Saturation is useful for a particular colour family, but its saturation slider is one of the fastest ways to make skin, grass and blue skies look synthetic.
My practical checks are simple:
- Skin should look plausible, not necessarily pale.
- Neutral objects should not carry an unexplained cast.
- Blue channels should not be breaking apart in deep shadows.
- Greens should not glow more brightly than the subject.
- The colour should support the remembered atmosphere of the scene.
I often step away for a minute and return. Colour adaptation is real: after staring at a cast long enough, my eyes start treating it as normal.
6. Use a layer mask when the whole photograph does not need the fix
This is the point at which GIMP becomes much more than a collection of sliders.
Suppose the foreground needs another half-stop of brightness but the sky is already correct. I duplicate the corrected layer, apply the brighter adjustment to the upper copy, add a black layer mask and paint white over the foreground. Black conceals the adjusted layer; white reveals it; grey reveals it partially.
The sequence is:
- Duplicate the layer.
- Apply the correction to the duplicate.
- Choose Layer → Mask → Add Layer Mask.
- Start with black if I want the correction hidden.
- Paint on the mask with a soft white brush at low opacity.
- Switch between black and white to refine the boundary.
- Reduce the layer opacity if the entire effect is too strong.
I prefer several light brush passes to one opaque stroke. A soft mask should follow the light in the scene, not announce the outline of my selection.
This method also works for colour, contrast and sharpening. It is slower than dragging a global slider, but the extra minute is usually where the photograph starts to feel intentional.
7. Retouch on a separate layer
For sensor dust, small blemishes and minor distractions, I create a transparent layer called “Retouch.” Then I use the Heal tool with Sample merged enabled so it can sample the visible photograph while placing new pixels on the empty layer.
The Heal tool is available through Tools → Paint Tools → Heal or the H key. I hold Ctrl and click a clean source area, then paint over the defect. The source should have similar texture, light and distance from the camera.
I use Clone when I need an exact copy and Heal when I want the replacement to blend with its surroundings. Neither tool rewards long, continuous strokes. Small samples and frequent resampling produce fewer repeated patterns.
GIMP still does not include the kind of built-in generative removal that has become common in commercial editors. Third-party inpainting plug-ins exist, but I do not install one casually. For most photographic cleanup, Heal and Clone remain slower, more predictable and easier to audit.
There is also an editorial line here. Removing a dust spot is maintenance. Removing a person, sign or power line changes what the photograph claims was present. For an illustrative image that may be fine; for documentary work, it may not be. The software cannot make that decision for me.
8. Reduce noise before sharpening
Noise reduction and sharpening pull in opposite directions. One smooths variation; the other emphasises contrast along edges. If I sharpen first, I may turn noise into detail the next filter has to fight.
For a noisy image, I begin conservatively with Filters → Enhance → Noise Reduction. I inspect flat shadows, skin and fine texture at 100 per cent. The danger is not merely blur. Heavy noise reduction can produce waxy surfaces and erase the small irregularities that make a photograph feel real.
If the file began as RAW, I prefer to do the main noise reduction in the RAW processor. GIMP is then the place for a final local correction, not a rescue attempt after aggressive ISO noise has already been baked into a JPEG.
9. Resize only after the main edit
I keep the master at its original dimensions while making tonal, colour and retouching decisions. When the edit is finished, I save the XCF and create an output version through Image → Scale Image.
The destination determines the dimensions. A website needs enough pixels for the display, not every pixel the camera captured. A print needs dimensions, resolution and a colour-managed conversation with the printer. A social-media copy may need a particular aspect ratio as well as a smaller file.
I keep the aspect-ratio chain linked unless I deliberately want distortion—which, for a photograph, I almost never do.
10. Sharpen for the final size
Sharpening is an output step. A 6,000-pixel master and a 1,600-pixel web image need different treatment, because resizing changes the edges I am trying to clarify.
I usually work on a new layer and use Filters → Enhance → Sharpen (Unsharp Mask). I judge it at 100 per cent and toggle the layer visibility. If the sharpening is the first thing I notice, it is too strong.
Three warning signs are reliable:
- bright or dark halos around high-contrast edges;
- skin texture that looks brittle;
- noise in the sky or shadows becoming more visible.
For a portrait, I may mask sharpening away from skin and keep it around eyes, hair and clothing. For architecture, I watch rooflines and window frames for halos. For landscapes, foliage can absorb more sharpening than an empty sky, but it can also become crunchy surprisingly quickly.
11. Export, then open the exported file
Saving and exporting are separate ideas in GIMP. File → Save As preserves the editable XCF project. File → Export As—or Shift+Ctrl+E—creates the JPEG, PNG, WebP, TIFF or another delivery file.
| Format | I use it for | What it keeps | What it does not keep well |
|---|---|---|---|
| XCF | Editable master | Layers, masks, paths and GIMP project structure | Broad compatibility outside GIMP |
| JPEG | Photographs for the web, email and general delivery | Small files, metadata and colour profile if selected | Transparency, layers and lossless repeated editing |
| WebP | Web photographs when the site supports it | Efficient lossy or lossless compression; optional transparency | Universal use in older workflows and some print services |
| PNG | Graphics, screenshots and transparency | Lossless pixels and alpha transparency | Small file sizes for large photographs |
| TIFF | High-quality interchange and some print workflows | High bit depth, profiles and optional lossless compression | Compact web delivery |
For a normal web photograph, I usually choose JPEG or WebP and inspect the preview rather than worshipping a fixed quality number. Fine hair, leaves, text and colour gradients reveal compression before broad areas do.
I also review the metadata options. EXIF and XMP data can be useful, but metadata may include the camera serial number, creator details or a precise GPS location. GIMP’s export preferences allow those fields to be included or omitted. For a public file, I make that choice deliberately.
Finally, I open the exported image in a normal viewer or browser. This catches wrong dimensions, excessive compression, an unexpected colour shift and the classic mistake of exporting the wrong layer state. The master can be perfect while the delivered file is not.
A worked example: the Piran harbour photograph
The photograph in the original version of this article looks across Piran’s harbour: blue water in the foreground, boats through the middle of the frame and the town rising behind them. I would keep the scene recognisable and the edit quiet.
If I rebuilt that edit now, this would be my order:
First pass: geometry
I would check the waterfront and masts before deciding what counts as level. Wide-angle scenes often contain competing lines, so blindly straightening one building can make the rest of the frame feel less stable. After rotation, I would crop only enough to remove empty edges and any accidental distraction at the border.
Second pass: tone
I would inspect the highlights in the pale architecture and sky, then set the overall exposure. The boats and shaded waterfront might need a local lift, but I would not raise every shadow until the scene became flat. A mild curve would probably be enough to separate the town from the water.
Third pass: colour
The water is an obvious temptation. I would resist turning it into tropical turquoise if the original light did not support that colour. A small white-balance correction and restrained work on the blues would be more convincing than a large saturation increase.
Fourth pass: local attention
With a soft mask, I would guide a little contrast towards the central boats and waterfront—the part of the scene where I want the eye to settle. I would keep distant buildings slightly quieter. This is not about creating a spotlight; it is about reducing competition.
Fifth pass: cleanup and output
I would remove sensor dust if present, but leave the actual harbour intact. Then I would save the layered XCF, resize a copy for the website, apply final-size sharpening and export it with a descriptive filename and alt text.
Nothing in that sequence is dramatic. That is the point. A successful edit does not need to advertise the software used to make it.
My compact decision table
When an image feels wrong, I use this table before opening random filters.
| What bothers me | What I check first | Likely correction |
|---|---|---|
| The frame feels crooked | Horizon and true verticals | Measure/Straighten, then Crop |
| The image feels dull | Black point, white point and midtone separation | Levels or a gentle Curve |
| The subject is too dark | Whether the problem is local | Masked Exposure adjustment |
| The sky is too bright | Whether RAW highlight detail still exists | RAW recovery first; then a local mask |
| Skin looks orange or green | White balance and mixed light | Color Temperature or Color Balance |
| One colour is distracting | Saturation in that colour range | Selective Hue-Saturation adjustment |
| Dust or a blemish is visible | Texture around the defect | Heal on a separate layer |
| A repeated edge looks wrong | Source alignment and pattern repetition | Smaller Clone samples and resampling |
| The image looks soft online | Final pixel dimensions | Resize, then restrained sharpening |
| The website file is too large | Pixel dimensions before quality | Scale appropriately, then compare JPEG/WebP export |
The mistakes that cost me the most time
Editing the only layer
It feels fast until I need to weaken an adjustment, recover an erased edge or compare the result with the original. A named duplicate layer is cheap insurance.
Treating every correction as global
If only the face is dark, brightening the entire photograph may destroy the sky. Masks are not an advanced decoration; they are the ordinary answer to an uneven scene.
Correcting at the wrong magnification
Composition needs distance. Retouching needs 100 per cent. Sharpening needs the final size. No single zoom level tells the whole truth.
Overusing Shadows-Highlights and saturation
Both tools can make a photograph look more impressive for ten seconds. The grey shadows, halos and electric colours become more obvious with time. I pull the effect back until I miss it, then return only a little.
Resizing too early
Once I throw pixels away, detailed masks and retouching become less flexible. I keep a full-resolution master and make destination-specific copies at the end.
Keeping only the JPEG
A final JPEG is a delivery file, not an editable archive. Repeated JPEG exports lose information, and the flattened file cannot recover the layer structure. I keep the XCF and the original source.
Trusting an unverified plug-in
GIMP’s extensibility is useful, but a plug-in is executable code. I prefer the built-in tools unless an external addition solves a specific problem and comes from a source I can verify.
Can GIMP replace Photoshop for me?
Sometimes. That is the honest answer.
For a single photograph that needs careful tonal work, masks, retouching and a web export, GIMP often gives me everything I need. It lets me move between operating systems, keeps the XCF project in a format I control and does not require a recurring payment.
Photoshop remains easier when a client’s production chain depends on PSD files, Adobe-specific features, shared libraries, mature adjustment-layer conventions or specialised commercial plug-ins. GIMP can import and export PSD, but I do not assume a complex Photoshop document will survive a round trip perfectly. GIMP’s own roadmap still describes incomplete work around some PSD effects and adjustment-layer compatibility.
Print is another boundary. GIMP has increasingly useful CMYK import, export, picking and soft-proofing features, and GIMP 3.2 added Total Ink Coverage information to its CMYK selector. Its core editing model is not yet a complete high-end CMYK and spot-colour prepress environment. For a commercial print job, I ask the printer for the required profile and file specification instead of assuming that an exported CMYK file is automatically correct.
The comparison becomes clearer when I stop asking which program is “best” and ask what must happen to the file.
| Requirement | My choice |
|---|---|
| Edit one photograph with layers and masks | GIMP is usually enough |
| Develop a RAW file | Darktable or RawTherapee first |
| Organise and batch-edit a large shoot | A dedicated photo manager/RAW editor |
| Deliver a complex PSD to an Adobe-based team | Photoshop is the safer choice |
| Prepare a normal web image | GIMP |
| Deliver colour-critical commercial print files | Follow the printer’s prepress workflow |
The way I think about GIMP now
I first installed GIMP because I wanted an alternative. That framing was useful, but it also made every difference feel like a defect. If a menu was somewhere else, GIMP was “behind.” If a shortcut was different, GIMP was “confusing.” I was measuring the program by how successfully it impersonated another one.
I get more from it now by treating it as its own editor.
Its layer stack encourages deliberate work. Its masks are capable. Its colour and GEGL tools can handle subtle photographs as well as aggressive composites. The interface still asks for patience, and some workflows remain less polished than their commercial equivalents. But the important part is no longer theoretical: I can take a photograph from a careful crop to a clean, colour-managed web file without renting the software that sits between those two moments.
That is not the same as saying GIMP is free Photoshop. It is a better reason to use it.