SESSION 07 / 20 Color & Tone Phase 3

Curves & Levels

Curves is the single most powerful image correction tool in GIMP. With one dialog you can fix exposure, add or reduce contrast, correct colour casts, and target shadows, midtones, and highlights independently. Levels is its simpler counterpart — faster for broad corrections, essential for setting black and white points. Master both and you can fix almost any tonal problem in under two minutes.

1h Session Length
+15m Review
4 Phases
💡
0:00 – 0:10  ·  ⏱ 10m
Concept Brief — Reading Histograms and Understanding Tone
▼

Both Curves and Levels operate on a fundamental concept: the histogram. A histogram is a bar chart of pixel brightness values across the image. The horizontal axis represents brightness from black (left, value 0) to white (right, value 255). The vertical axis represents how many pixels in the image have each brightness value. The histogram is the objective description of an image's tonal distribution — it tells you what is actually in the image, independent of how it looks on your monitor.

Learning to read the histogram is the prerequisite to using Levels and Curves effectively. Here are the three most common histogram shapes and what they diagnose:

Underexposed
Underexposed

Pixel mass bunched to the left. Shadows dominate; highlights are absent or clipped. Image appears dark and muddy.

Well Exposed
Well Exposed

Pixels spread across the full tonal range from black to white without bunching at either end. Detail in both shadows and highlights.

Overexposed
Overexposed

Pixel mass bunched to the right. The amber spike at the right wall indicates clipping — highlight detail that is permanently lost (value = 255 with no recoverable data).

Levels lets you remap the black point, white point, and midtone gamma of the histogram in a straightforward three-slider interface. Curves gives you the same control plus the ability to adjust any individual tonal region independently — a steeper curve segment means more contrast in that tonal range; a flatter segment means less. Both tools operate on the composite RGB channel by default, or on any individual colour channel (Red, Green, Blue) for colour correction.

✅

Skill unlock: After this session you can diagnose any exposure or contrast problem from the histogram alone, correct it with Levels in under 30 seconds, and use Curves for precise tonal surgery — brightening only the midtones, adding contrast to only the shadows, or targeting any specific tonal band independently.

  • 01
    Open Levels and Understand the Interface

    Open any photograph and go to Colors → Levels. The dialog shows a histogram of the image with three triangular sliders below it on the Input Levels bar: a black triangle at the left edge (shadows), a grey triangle in the middle (midtone gamma), and a white triangle at the right edge (highlights). Below these is the Output Levels bar with only two sliders (black and white), which compresses the tonal range on output — rarely used in standard correction. The Channel dropdown at the top defaults to Value (composite luminosity across all channels). Leave it on Value for now.

    Colors → Levels
  • 02
    Setting the Black and White Points in Levels

    The most common and impactful Levels adjustment is clipping the black and white points to the actual tonal range of the image. If the histogram shows empty space at the left edge (no pixels in the deepest shadows), drag the black Input triangle rightward to the point where the histogram data begins — this remaps that tone to pure black (0), expanding contrast across the full range. Do the same with the white triangle: drag it leftward to where the highlight data ends, remapping that tone to pure white (255). This single operation fixes the majority of flat, low-contrast images. The Auto button performs this automatically by clipping 0.1% of shadow and highlight pixels — a good starting point, though manual adjustment gives more control.

    Colors → Levels → drag black Input triangle right to histogram start → drag white Input triangle left to histogram end
  • 03
    The Midtone Gamma Slider

    The grey triangle in Levels controls gamma — the overall brightness of the midtones without moving the black or white points. Drag it left to brighten the image (raises midtones toward white); drag it right to darken it (pulls midtones toward black). A gamma value above 1.0 brightens; below 1.0 darkens. Critically, the black and white points remain fixed — only the mid-range tones are redistributed. This makes it ideal for correcting overall brightness without blowing out highlights or crushing shadows. Use Levels gamma for quick brightness corrections; use Curves (step 06) for precise midtone control.

    Colors → Levels → drag grey (gamma) slider left to brighten, right to darken
  • 04
    Using the Eyedroppers in Levels for White Balance

    The three eyedropper buttons in the Levels dialog (black, grey, and white point pickers) provide a rapid white balance correction. Click the white eyedropper, then click on any area in the image that you know should be pure white (a white wall, a white t-shirt, a white piece of paper). GIMP remaps that clicked colour to pure white (255, 255, 255) and adjusts all other tones proportionally — this simultaneously sets the white point and removes any colour cast in the highlights. Similarly, click the black eyedropper then click the darkest neutral in the image to set the black point and remove shadow colour casts. Use the grey eyedropper on a neutral mid-grey to correct overall colour temperature. This three-click technique fixes many colour cast problems without opening Color Balance or Curves.

    Colors → Levels → white eyedropper → click known-white area in image (corrects white point + highlight cast simultaneously)
  • 05
    Open Curves and Understand the Interface

    Open Colors → Curves. The dialog shows a square graph: the horizontal axis is the input tonal value (original pixel brightness, 0 at left = black, 255 at right = white); the vertical axis is the output tonal value (resulting pixel brightness after adjustment). By default, the curve is a straight diagonal line from bottom-left to top-right — input equals output, no change. A histogram of the image is drawn behind the curve as a reference. The Channel dropdown (defaulting to Value) allows switching to individual R, G, or B channels. Click anywhere on the curve line to add a control point. Drag the point upward to brighten that tonal range; drag downward to darken it. Multiple control points can be placed on the same curve.

    Colors → Curves → click the diagonal line to add control points → drag up to brighten, down to darken
  • 06
    The S-Curve — The Most Used Curves Shape

    The S-curve is the standard contrast-enhancement shape. Place one control point in the lower-left quarter of the curve (the shadow region, roughly input value 64) and drag it slightly downward — this darkens the shadows. Place a second control point in the upper-right quarter (the highlight region, roughly input value 192) and drag it slightly upward — this brightens the highlights. The result is a gentle S-shape: shadows go darker, highlights go brighter, and contrast increases through the midtones. The steeper the S, the more contrast. A subtle S at ±15–20 output units is often all an image needs. An aggressive S at ±40+ units produces a high-contrast, punchy look — use it deliberately, not by default.

    Colors → Curves → add point at ~input 64, drag down ~15 units → add point at ~input 192, drag up ~15 units
  • 07
    Targeting Specific Tonal Regions with Curves

    Curves' true power over Levels is its ability to target any specific tonal band independently. To brighten only the midtones without affecting shadows or highlights: add a control point at the far left of the curve (input 0, output 0 — locks the black point) and another at the far right (input 255, output 255 — locks the white point), then add a third point in the middle (input ~128) and drag it upward. The locked endpoints prevent the black and white points from shifting while only the midtones lift. To flatten contrast in the shadows while boosting highlight contrast: steepen the curve only in the highlight region (upper right) and flatten it in the shadow region (lower left) — the slope of the curve at any point directly represents local contrast at that tonal value. A steeper slope = more local contrast; a flatter slope = less.

    Add endpoint locks at (0,0) and (255,255) → add midpoint at input ~128 → drag for targeted midtone adjustment
  • 08
    Per-Channel Curves for Colour Correction

    Switch the Channel dropdown from Value to Red, Green, or Blue to apply a curve to a single colour channel. This is used for colour correction — neutralising colour casts or creatively shifting colour in specific tonal ranges. To remove a warm (orange/yellow) cast from highlights: switch to the Blue channel and pull the highlight end of the curve slightly upward (adds blue to the highlights, cooling them). To warm the shadows: in the Red channel, pull the shadow region of the curve slightly upward (adds red to shadows). Per-channel curves are more precise than Color Balance (Session 8) because they allow tonal targeting — you can warm only the shadows, cool only the highlights, and leave the midtones neutral, all in a single channel adjustment.

    Colors → Curves → Channel dropdown → Red / Green / Blue → adjust curve for that channel only
  • 09
    The Curves Sample Point Tool

    While the Curves dialog is open, hold Ctrl and click anywhere on the canvas. GIMP places a sample point on the curve corresponding to the brightness value of the clicked pixel — a vertical line appears on the Curves graph showing exactly where that tone falls. This removes guesswork: click on a shadow you want to darken and GIMP shows you the exact input value; click on a skin tone you want to preserve and see its position on the curve before you adjust. The sample point disappears when you close the dialog. Use it to confirm which part of the curve controls any area of the image you are targeting.

    Colors → Curves dialog open → Ctrl+click on canvas to show sample point on the curve
  • 10
    Common Curve Shapes Reference

    These are the four curve shapes you will use repeatedly across all future sessions:

    S-Curve

    Shadows down, highlights up. Adds contrast and punch. The most-used curve shape in photography.

    Single Upward Arc

    Midtone brightening without touching black or white points. Lifts a flat or slightly dark image.

    Single Downward Arc

    Midtone darkening. Adds weight and richness to bright or hazy images. Equivalent to a gentle Multiply blend mode.

    Clipped Endpoints

    Black point raised, white point lowered — equivalent to Levels input clipping. Sets full black and full white, expanding contrast range. Amber dots mark the moved endpoints.

  • 11
    When to Use Levels vs Curves

    Use Levels for: quick black/white point setting, overall brightness adjustment with the gamma slider, and rapid white balance using the eyedroppers. It is faster and simpler for broad corrections. Use Curves for: anything requiring independent control of shadows, midtones, or highlights separately; adding contrast to a specific tonal region only; per-channel colour correction targeting a specific tonal range; and any correction where Levels produces the right black/white points but the wrong midtone character. In practice, a typical correction workflow uses Levels first to set black/white points, then Curves for midtone shaping and per-channel colour work.

    Levels first (black/white points + gamma) → Curves second (midtone shaping + per-channel colour)
⚠️

GIMP 3.2 / precision note: In GIMP 3.2, the Curves dialog shows input/output values as 0–255 for 8-bit images (the default for JPEGs). For 16-bit or 32-bit float images (Image → Precision), values are shown as percentages (0–100%) or floating-point (0.0–1.0). The concepts are identical — only the scale changes. All numerical references in this session assume 8-bit (0–255).

Open a photograph with at least one obvious tonal problem — ideally something underexposed, hazy/flat, or with a visible colour cast. You will correct it using the full Levels → Curves workflow, working on a duplicate layer throughout.

  • A
    Diagnose the image from the histogram

    Open the Histogram dialog (Windows → Dockable Dialogs → Histogram) and keep it open alongside the image. Note where the pixel mass sits. Is it bunched left (underexposed), right (overexposed), or does the histogram have large empty gaps at either end (flat/low contrast)? Write down your diagnosis before making any adjustment.

  • B
    Set black and white points with Levels

    Duplicate the base layer (Shift+Ctrl+D). With the duplicate selected, open Colors → Levels. Drag the black Input slider right to where histogram data begins. Drag the white Input slider left to where highlight data ends. If there is a visible colour cast (a blue or orange tint visible in neutral areas), use the grey or white eyedropper to neutralise it. Click OK. Observe the histogram — it should now span the full range.

  • C
    Shape the midtones with Curves

    Open Colors → Curves on the same layer. Lock the endpoints at (0,0) and (255,255) by clicking those positions on the curve. Now Ctrl+click on the most important tonal area of the image (a face, the sky, the key subject) to place a sample point on the curve. Adjust: if that zone is too dark, nudge the point upward; if too bright, nudge it down. Add a gentle S-curve if the image looks flat after Levels. Click OK.

  • D
    Verify with before/after comparison

    Toggle the visibility of the corrected duplicate layer to compare it against the original. The corrected layer should show full tonal range (detail in both shadows and highlights), better midtone character, and no colour cast in neutral areas. If any of these are not improved, return to Colors → Levels or Curves and refine. The histogram on the corrected layer should show data reaching close to both the 0 and 255 endpoints.

💡

Expected result: The corrected layer should have noticeably improved tonal range compared to the original. The Histogram dialog should show pixel data spanning closer to the full 0–255 range. Toggle the layer's visibility rapidly (V key while the layer is selected, or click the eye icon) to confirm the improvement is real and not just adaptation from staring at the corrected version.

Using any well-exposed photograph (or the corrected image from the Guided Practice), apply a deliberate cinematic colour grade using only per-channel Curves — no other colour tools. No step-by-step guidance.

  • →
    Create a "teal and orange" grade using only the R, G, and B curves

    Teal-and-orange is the most common cinematic colour grade: warm (orange) highlights and midtones, cool (teal) shadows. To achieve it with Curves: in the Red channel, pull the shadow region of the curve slightly down (reduces red in shadows → shadows shift toward cyan/teal) and the highlight region slightly up (adds red to highlights → shifts highlights toward orange/warm). In the Blue channel, pull the shadow region slightly up (adds blue to shadows, further pushing them toward teal) and pull the highlight region slightly down (reduces blue from highlights, reinforcing the warm orange). Leave Green mostly alone, or reduce it very slightly in shadows to push them further toward teal. Compare the result against the ungraded version by toggling layer visibility.

  • →
    Identify where the grade breaks down and why

    Teal-and-orange works best on warm-skinned subjects against varied backgrounds. On images without much tonal or colour variation (a grey cityscape, an overcast seascape), the grade may produce muddy or unpleasant results. Study your result critically: which areas look improved? Which look wrong? Understanding why a grade succeeds or fails on a particular image is the skill that turns technical knowledge into aesthetic judgement.

💡

Hint: The teal-and-orange effect relies on the natural opposition of red/orange skin tones and teal/blue-shifted neutrals. If your image lacks warm skin tones (no people, or the subject is very desaturated), the orange component won't read strongly. Try the grade on a portrait for the most pronounced result.

Your progress is saved locally in your browser.
✓   Session 7 complete. Up next: Session 8 — Color Correction →
🔁
+ 15 minutes

Session 7 Review

15:00 review
Key Concepts
  • A histogram's horizontal axis = brightness (0 black, 255 white); vertical axis = pixel count at each value
  • Pixel mass bunched left = underexposed; bunched right = overexposed; spike at either wall = clipping (lost detail)
  • Levels: three sliders (black, gamma, white) remap the tonal range; eyedroppers set neutral points for white balance
  • Curves horizontal axis = input (original) tonal value; vertical axis = output (result) tonal value
  • Steeper curve slope = more local contrast in that tonal region; flatter slope = less contrast
  • S-curve: shadows down + highlights up = overall contrast increase — the most-used Curves shape
  • Ctrl+click the canvas while Curves is open to place a sample point on the curve at the clicked pixel's value
  • Per-channel Curves: adjusting R, G, or B individually corrects colour casts or adds deliberate colour grades
Common Mistakes
  • Applying Curves or Levels directly to the original layer — always work on a duplicate
  • Over-adjusting: an S-curve of ±50 units crushes shadows and blows highlights; ±15 is typically sufficient
  • Not locking the black and white points with endpoint control points when targeting only midtones — the endpoints drift and the adjustment affects the whole tonal range
  • Misreading the histogram: a gap at the right wall means no highlights, not a clipping problem — only a spike at the wall indicates clipping
  • Using the Auto button in Levels without checking the result — it clips 0.1% of pixels to black and white, which can crush detail in images with very bright or very dark subject matter
Quick Quiz
  • A histogram shows all pixel data bunched between values 40 and 180, with no data at 0 or 255. What Levels adjustment will fix the flat contrast?
  • What does steepening the Curves line in the shadow region (lower-left) do to local contrast in the shadows?
  • How do you use the Levels white eyedropper to fix a blue colour cast in the highlights?
  • What keyboard action, while the Curves dialog is open, places a sample point on the curve at a specific pixel's value?
  • A pixel spike touching the right wall of the histogram means what, and why is it a problem?
Next Session Preview
  • Session 8 covers dedicated colour correction tools: Hue-Saturation, Color Balance, and per-channel Curves for colour grading
  • Curves per-channel work from today is the foundation — Session 8 adds Hue-Saturation for global and colour-range-specific adjustments
  • Prepare images with obvious colour problems: a portrait shot under tungsten light (orange cast), a photo taken in open shade (blue cast), or any image with a colour that looks "off"
  • Session 8 also covers how to match colour between two different photos — the key skill for the compositing sessions that follow
📚 Best Resources
  • 01
    GIMP Official Docs Authoritative reference for every tool, dialog, and preference in GIMP 3.x.
    docs.gimp.org ↗
  • 02
    Davies Media Design Video walkthroughs specifically for GIMP 3.x — best free companion to this course.
    YouTube ↗
  • 03
    GIMP Forums Community support for troubleshooting, plug-in questions, and workflow advice.
    gimp-forum.net ↗