Dither image
Floyd-Steinberg dithering to a reduced palette, on your device.
Runs on your device. The file is never uploaded.
Dither image snaps the red, green and blue channels to 2 levels by default and pushes the rounding error onto neighbouring pixels. The error is spread in the 7, 3, 5, 1 sixteenths pattern, and alpha is carried across untouched. Levels accept 2 to 32. The file is still written at full colour depth, so it rarely ends up smaller.
Questions
What kind of dithering is this?
Floyd-Steinberg error diffusion, applied to each of the red, green and blue channels separately. Every pixel is snapped to the nearest allowed level and the rounding error is pushed to its neighbours in the classic 7, 3, 5, 1 sixteenths pattern, which is what produces the grainy, ordered look instead of flat banding.
What does the levels option do?
Levels per colour channel, default 2, sets how many values each channel takes. Two means each channel is fully off or fully on, which gives eight possible colours in total. Four levels per channel gives 64 colours, and so on. The range is 2 to 32, and anything else stops with "levels must be a whole number between 2 and 32".
Will my file get smaller?
Not necessarily, and often not. The palette reduction happens in the pixels, but the file is still written in your original format at full colour depth, and the fine dot pattern is exactly the sort of detail JPEG compresses badly. Save the result as PNG through Convert image if you want the size to reflect the reduced palette.
Does it keep transparency?
Yes. Only the colour channels are quantised; the alpha of each pixel is carried across untouched, so a transparent PNG background stays transparent. The output uses the input format, named with a -dither suffix, such as art-dither.png, with JPG and WebP encoded at the Quality option, default 80.
Does it run on my device?
Yes, all of it. Decoding, the error diffusion pass and encoding happen in a Web Worker in this tab using the jSquash codecs. Nothing is uploaded and nothing is kept. Only JPG, PNG and WebP are read, matched on the file extension, and anything else is refused with "only JPG, PNG and WebP are supported".