How to Dither an Image in GIMP, the Free Alternative Method

APP TUTORIALDESIGNER

GIMP dithers an image through Image > Mode > Indexed, not a dedicated filter. Here's every method it actually ships (Floyd-Steinberg, Positioned, Newsprint)…

01/ ARTICLE

How Do You Dither an Image in GIMP?

You dither an image in GIMP through Image > Mode > Indexed, not a dedicated dithering tool. Open that dialog, pick a palette, choose a dithering method from the dropdown, click Convert. That's the whole mechanism. Everything else here is which method to pick and why.

Dithering itself is one flat idea: approximating a color or tone that isn't in a reduced palette by arranging nearby pixels of colors that ARE in the palette, so the eye blends them into the missing shade at a distance. GIMP does this for free, fully manually, with no dedicated plugin required.

This is written for designers who want the effect without a Photoshop license and want exact setting names, not "play with the sliders until it looks right." Want the same result without the menu-diving? kott's dither tool runs the same underlying math in the browser -- more on that at the end.

Where Do GIMP's Dithering Options Actually Live?

Open Image > Mode > Indexed. The dialog asks two questions in order: what palette, and how to dither into it.

Palette comes first because it decides how much room the dithering has to work with. Generate optimum palette builds the best possible palette up to 256 colors and is the right default for a full-tone photographic dither. Web-optimized palette locks you to the 216-color "web safe" set, mostly useful for legacy-format exports these days. Black and white (1-bit) palette forces a strict two-color result -- what you want for a classic high-contrast look, or for output that has to be pure black and white: screen printing, laser engraving, a Mac Classic aesthetic.

The dithering method dropdown ships exactly four options, named plainly. None applies no dithering filter at all, so a reduced palette just produces flat color bands. Floyd-Steinberg (normal) is the standard error-diffusion method and GIMP's default; it's what you want unless you have a specific reason not to. Floyd-Steinberg (reduced color bleeding) is a variant tuned to keep error from smearing as far across the image, handy when normal Floyd-Steinberg starts muddying fine detail. Positioned uses a fixed, non-random pattern that stays identical frame to frame, which is exactly why GIMP's own documentation recommends it for animations.

Two checkboxes sit below the dropdown. "Enable dithering of transparency" fakes partial transparency for GIF export (Semi-flatten sometimes works better). "Enable dithering of text layers" works, but makes that text layer non-editable afterward. Leave both off unless you specifically need them.

What Is Floyd-Steinberg Actually Doing to Your Pixels?

Floyd-Steinberg dithering compares each pixel to a threshold, then pushes the difference between what you wanted and what you got -- the error -- into the neighboring pixels that haven't been processed yet. It diffuses that error to four unprocessed neighbors, weighted 7/16, 3/16, 5/16, and 1/16.

That fixed weighting is why Floyd-Steinberg photos read as smooth from a normal viewing distance instead of speckled. The error spreads forward and downward in a consistent pattern, not scattered randomly. Bill Atkinson's variant, built for the earliest Macintosh screens, only propagates three-quarters of the error. Less error carried forward means higher contrast and less midtone smoothness than Floyd-Steinberg, at the cost of some shadow and highlight detail.

GIMP doesn't ship Atkinson's method by name. That trips up anyone coming from a tutorial written for Photoshop, or a tool that lists Atkinson explicitly. Want the closest built-in equivalent? Reach for Floyd-Steinberg (reduced color bleeding). It propagates less error than the normal variant for the same reason Atkinson does, and produces a visibly punchier result on the same source image.

Which Method Should You Actually Use?

MethodWhat it looks likeBest forRisk
NoneFlat, banded color stepsNever, unless testing palette size aloneVisible posterization on any gradient
Floyd-Steinberg (normal)Smooth, grain-like error diffusionMost photographic sources, general useMuddies very fine detail at low bit depth
Floyd-Steinberg (reduced color bleeding)Punchier, higher-contrast diffusionPortraits, anything needing crisper edgesLoses some shadow/highlight detail
PositionedRegular, repeating grid patternAnimation frames, deliberately mechanical looksReads as an obvious grid at the wrong period
Newsprint (Circle)Round halftone dots that grow with darknessPrint prep, screen printing, laser engravingMoire if period/angle isn't locked correctly

How Do You Get a Circular Halftone Dot Instead of Error-Diffusion Noise?

The Indexed dialog doesn't have a circular halftone option. Some guides describe one anyway -- that's a mix-up between two separate GIMP features. For round, clustered dots that grow and shrink with darkness, the actual tool is different: Filters > Distorts > Newsprint, which halftones the image without touching its color mode at all.

The Newsprint controls that matter: Pattern (Circle, Line, Diamond, PSSquare, or Crossing Lines) sets the dot shape, Period sets how many pixels one pattern repeat spans, Angle rotates the whole screen grid, and Color Model picks White on Black, Black on White, RGB, or CMYK. On a CMYK image, Black Pullout applies specifically to the black channel.

The failure mode here is moire: a Period and Angle combination that fights the detail already in your source produces visible interference banding instead of clean dots. Newsprint's Lock checkboxes exist for exactly this reason -- to keep pattern, period, and angle synchronized across color channels so per-channel drift doesn't introduce moire on its own.

Where Does Each Method Actually Break?

Floyd-Steinberg on a flat, low-contrast source just diffuses noise instead of shape. Stretch contrast first with Colors > Levels or Colors > Curves, or the dither has nothing to work with. Positioned at the wrong period on a small image reads as an obvious mechanical grid instead of a texture -- there just isn't enough resolution to hide the repeat. Newsprint's Circle pattern at too high a Period on a small canvas looks blocky rather than halftoned, since the dots don't have room to vary in size.

Let material and output context decide the method, not habit. Floyd-Steinberg (normal) reads as natural, grain-like texture on textured substrates like wood. Positioned reads as deliberately mechanical, which suits anodized aluminum or anything needing predictable, repeatable dot placement pass to pass. Newsprint's Circle pattern reads as an actual print halftone -- the right call for acrylic, slate, or screen-printed output. Whichever method you land on, converting to grayscale and stretching contrast before quantizing beats dithering a full-color image directly, every time.

The Fast Way: Dither an Image With kott Instead

Everything above is real, free, and fully manual: multiple menus, one full Indexed conversion per method you want to compare, no live before/after while you decide. That's a fair trade for zero cost, and GIMP still wins if you're scripting a batch job with Script-Fu or working inside an existing GIMP-based pipeline.

Comparing looks rather than automating a pipeline? kott runs the same error-diffusion and ordered-dither families in the browser with an adjustable threshold and an instant before/after, so you're not reopening a dialog and reconverting for every method you want to see. Try kott's dither effect or kott's halftone effect with the relevant look already loaded.

Frequently Asked Questions

What's the best dithering method in GIMP?

Floyd-Steinberg (normal) for most photographic sources -- it's the default in the Indexed dialog for a reason, spreading error across four neighboring pixels for smooth-looking gradients at low bit depth. Switch to Positioned only when you need frame-to-frame consistency for animation or a deliberately grid-like look.

Does GIMP have Atkinson dithering?

No. GIMP's Indexed dialog ships None, Floyd-Steinberg (normal), Floyd-Steinberg (reduced color bleeding), and Positioned -- there's no native Atkinson option. Floyd-Steinberg (reduced color bleeding) is the closest built-in approximation of Atkinson's higher-contrast, less-smooth look, since both propagate less error than standard Floyd-Steinberg.

Why does my dithered image look noisy or grainy instead of clean?

Usually the source wasn't contrast-stretched before quantizing. Run Colors > Levels or Colors > Curves to push your black and white points toward the edges of the histogram first. Dithering a flat, low-contrast image just diffuses noise instead of shape.

Can I dither an image without converting it to indexed color?

Not with GIMP's built-in dithering -- it only runs as part of the Image > Mode > Indexed conversion. For a dithered look on an RGB image you keep in full color, use the Newsprint filter (Filters > Distorts > Newsprint) instead, which halftones in place without changing the color mode.

What's the fastest way to dither an image without GIMP's menu-diving?

kott runs the same error-diffusion and ordered-dither families in the browser with a live before/after and an adjustable threshold, so you're not reopening the Indexed dialog to compare methods one conversion at a time. It's worth reaching for once you already know which look you want and don't want to repeat the GIMP steps on every source image.

02/ OUT

Try it in the studio

Every setting described above is a real control. Open your own image and sweep it.

All journal entries