Initializing WebAssembly module...
Error diffusion dithering with configurable bit depth per channel
Click to upload or drag and drop
Uses perceptual distance for candidate selection with linear error diffusion. For RGB, processes channels jointly. For grayscale: CIE76=CIE94 (simple ΔL²), CIEDE2000 uses lightness-dependent weighting, OKLab uses different L curve.
Controls random kernel selection in Mixed modes. Each channel uses a different derived seed.
Row stride applies to row-aligned output. Padding fill affects both row padding and RGB666 partial groups (4-pixel boundaries).
Aspect ratio is preserved. Edit one dimension to auto-calculate the other.
Integer upscaling with nearest neighbor for pixel-perfect viewing.
3 bits (8 levels)
3 bits (8 levels)
2 bits (4 levels)
4 bits (16 levels)
Processing image...
Original
Dithered