Turn any picture into pixel art

PixelOE keeps thin lines and small details that a plain downscale would lose. It runs entirely in this browser, and your pictures never leave your device.

or drop them here, or paste with Ctrl+V. Pick several (up to 24) to process them as a batch.

How PixelOE works

PixelOE makes pixel art from ordinary pictures with classic image processing, with no AI model involved. Downscaling a picture normally loses its thin lines and small highlights. PixelOE first makes those details thicker, then picks each output pixel with care.

  1. Resize. The picture is resized to the output size × the patch size, so each output pixel covers one patch.
  2. Outline expansion. A weight map compares each area's median brightness with its brightest and darkest details. Where fine detail is darker than its surroundings, the picture is eroded so dark lines grow. Where it is brighter, the picture is dilated so highlights grow. The two are blended by the weight map, then cleaned up with a morphological close and open. See the Steps view.
  3. Color matching. Expansion shifts colors, so the Lab statistics and low frequencies of the original are transferred back.
  4. Contrast-aware downscale. In Lab space, each patch's lightness is its minimum, maximum or center value, depending on which way the patch is skewed. Color takes the median. Other methods (k-centroid, Lanczos, nearest…) are available too.
  5. Palette (optional). Deterministic k-means finds a palette. Weighted and repeat variants favor detail pixels. Ordered or error-diffusion dithering can be added.

This is a JavaScript port of PixelOE v1.0.0 by Shin-Ying Yeh (KohakuBlueleaf), Apache-2.0. It follows the reference torch pipeline and is checked against it. The sample pictures come from the PixelOE repository.

Shortcuts: Space (hold) shows the source · G pixel grid · 0 fit · 1 actual pixels · +/− zoom · Ctrl+S download · Ctrl+V paste a picture · ←/→ previous / next picture