Dither — Free Online Image Dithering Tool (Retro & Halftone)
Turn any photo into 1-bit, retro-palette, or halftone art with real dithering algorithms — Floyd–Steinberg, Atkinson, Bayer ordered dithering, and more. 100% free, runs entirely in your browser.
What it does
Dither takes any photo or image and converts it into a reduced-color version using genuine dithering algorithms — the same techniques used in classic Game Boy games, early Mac screenshots, and modern halftone print art. Choose an error-diffusion algorithm like Floyd–Steinberg or Atkinson, an ordered Bayer pattern, random noise, or a halftone dot screen, pick a palette (1-bit black and white, a retro console palette, a custom color set, or a palette auto-extracted from the image itself), and download the result. Nothing is uploaded — the whole thing runs locally in your browser tab.
How it works
Dithering solves a simple problem: how do you represent a photo with only 2, 4, or 16 colors without it looking blocky and banded? The tool gives you three families of technique:
- Error diffusion (Floyd–Steinberg, Atkinson, Jarvis-Judice-Ninke, Stucki, Burkes, Sierra) picks the nearest available palette color for each pixel, then pushes the rounding error it introduced onto neighboring pixels that haven’t been processed yet — so the error averages out visually instead of accumulating into flat bands. Each algorithm spreads that error slightly differently, which is why Atkinson (used on the original Macintosh) looks crisper and higher-contrast than Floyd–Steinberg, which looks smoother.
- Ordered dithering uses a fixed Bayer threshold matrix (2×2, 4×4, or 8×8) instead of diffusing error — every image gets the same repeating pattern nudging pixels above or below the palette’s color boundaries. It’s what gives old-school ordered dithers their crosshatch texture, and it’s deterministic, so the same image always dithers the same way.
- Halftone mimics newspaper printing: the image is divided into a grid of cells, and each cell is filled with a dot sized to that cell’s average darkness.
Palette color-matching uses a perceptually-weighted distance (a “redmean” formula) rather than plain RGB distance, so matches favor how the eye actually perceives color differences. When you choose “Auto-extract from image,” the tool runs a median-cut color quantization over a sample of the image’s own pixels to build a custom palette tuned to that specific photo — the same family of algorithm used by professional image-quantization tools.
How to use it
- Drop in one or more images (JPG, PNG, WebP — anything your browser can decode).
- Pick an algorithm — error diffusion for smooth photographic dithers, Bayer for a retro-game crosshatch look, or halftone for a print-style dot pattern.
- Choose a palette: 1-bit black and white, a retro console palette (Game Boy, CGA, Commodore 64, NES, web-safe 216), a grayscale ramp, a custom set of colors you pick yourself, or let the tool extract a palette from the image automatically.
- Fine-tune with brightness, contrast, gamma, and the pixelate slider for a chunkier retro look.
- Download the current image, or click “Apply to all” to render every loaded image with the same settings and grab them all as a .zip.
Supported formats & limits
Input accepts any image type your browser can decode (JPG, PNG, WebP, GIF, BMP). Output downloads as PNG to preserve exact palette colors — dithered output re-compressed as JPEG would blur the very pattern you just created. Very large images (tens of megapixels) may take a few seconds to render; the tool warns you before processing anything unusually large.
Privacy
Every image stays in your browser. Nothing is uploaded to a server, and loaded images persist locally (via your browser’s storage) so a refresh doesn’t lose your work — clear them anytime with “Clear all.”
FAQ
What’s the difference between Floyd–Steinberg and Atkinson dithering? Both are error-diffusion algorithms, but Floyd–Steinberg diffuses 100% of each pixel’s rounding error to its neighbors, producing a smoother, more photographic result. Atkinson (from the original 1984 Macintosh) only diffuses 75% of the error and ignores the rest, which produces higher contrast and a slightly “cleaner,” more graphic look — it’s why classic Mac screenshots have that distinctive texture.
Why does my dithered image only have 2 colors even though I picked a 16-color palette? Check that your palette mode actually matches your intent — the preset dropdown only applies when “Preset” is selected as the palette mode. If you’re on “Auto-extract,” the palette is built from the image’s own colors, and a low-contrast or near-monochrome source image can genuinely quantize down to very few distinct colors even when you asked for more.
Can I make pixel art from a photo? Yes — turn up the “Pixelate” slider to blockify the image before dithering, then pick a small retro palette (Game Boy or CGA works well) with Bayer ordered dithering for a classic pixel-art crosshatch.
Does dithering reduce file size? Not necessarily on its own — a dithered PNG can be larger than the original JPEG because dithering intentionally adds high-frequency noise, which compresses less efficiently. Dithering is about visual style and low-color-depth reproduction, not compression.
What’s halftone dithering good for? It mimics classic newspaper and comic-book printing — useful for a poster or zine aesthetic, or for genuinely preparing an image for a process that only supports solid ink dots (like screen printing) rather than continuous tone.
Can I use a custom palette instead of a preset? Yes — switch the palette mode to “Custom” and add any colors you like with the color picker. This is useful for matching a brand palette, a specific console’s color set that isn’t built in, or a deliberately limited artistic palette.