Posterize

Posterize reduces each of an image's red, green and blue channels to a small number of tone levels, so a smooth ramp breaks into flat bands of colour. Levels run from 2 to 32 per channel and start at 6; you can also quantise the three channels by different amounts, which tints the flat areas. Unlike dithering, nothing is scattered into neighbouring pixels to fake the missing tones — the bands are the point.

How it works

  1. Drop in your images One file or a batch. Decoding happens in the tab and nothing is uploaded.
  2. Set the levels The Levels slider runs from 2 to 32 tone steps per channel and starts at 6. Six to eight reads as a poster; two gives eight colours, one per corner of the colour cube.
  3. Split the channels if you want a cast Turn on separate levels per channel to quantise red, green and blue by different amounts. Unequal counts give the flat areas a colour cast, and the tool says so before you export.
  4. Choose the spacing Linear puts the levels an equal number of code values apart. Perceptual crowds them into the shadows, where a photograph keeps most of its detail.
  5. Apply and download Write PNG, WebP or JPEG, press Apply, then download one file or the batch as a ZIP.

Questions

Which format should a posterized image be saved as?
PNG. Flat bands compress well losslessly and come back untouched. JPEG and WebP turn each edge between bands into a ring of noise, and a flat band is exactly the thing that makes that noise visible.
What does perceptual spacing change?
It quantises in a gamma-encoded space using sRGB's display gamma of 2.2, rather than in raw code values, so more of the levels land in the shadows where a photograph carries most of its detail. Linear spacing throws nearly all of the dark end into one flat band. One real consequence: at high level counts the darkest few perceptual steps can round to the same byte, so the result may hold slightly fewer distinct values than the number you asked for.
Does posterizing affect transparency?
No. Only the red, green and blue bytes are pushed through the lookup table; the alpha byte is left exactly as it was found, so a soft edge stays soft instead of becoming stepped. Both ends of the range are also exact — 0 stays 0 and 255 stays 255 at any level count, so posterizing never darkens white or lifts black.

Every tool