Pixel scale

Pixel scale enlarges pixel art by a whole number — 2×, 3×, 4×, 5×, 6×, 8× or any custom factor up to 64× — with image smoothing switched off, so each source pixel becomes an exact square block instead of a soft gradient between its neighbours. Fractional factors are refused on purpose: at 2.5× some blocks come out a pixel wider than others and the art develops a limp. It defaults to PNG, because a lossy encoder spends its bit budget softening exactly the hard edges the tool just preserved.

How it works

  1. Drop your sprites Drag one or more image files onto the drop area. They decode one at a time rather than all at once, which is what keeps a large batch from running the tab out of memory.
  2. Pick a factor Choose 2×, 3×, 4×, 5×, 6× or 8×, or pick Custom and type any whole number from 2 to 64. The readout shows the source size, the factor and the exact output size.
  3. Normalise art that arrived already scaled Turn on "Detect and normalise first". The rail reports the factor it found and the native size it will shrink back to before enlarging, so you are not enlarging an enlargement.
  4. Choose the output format PNG is selected by default. GIF is lossless but capped at 256 colors; WebP and JPEG are offered, and both raise a warning because they soften block edges.
  5. Process and download Press Process, then Download. A single file saves directly; more than one comes back as file4edit-pixel-scale.zip.

Questions

Why can't I enlarge by 2.5×?
Pixel scale only accepts whole-number factors. At 2.5× a source pixel cannot be given the same number of destination pixels as its neighbours, so some blocks come out one pixel wider than others and the sprite looks uneven. The tool caps factors at 64× and floors anything fractional.
How does it detect art that has already been scaled up?
Pixel scale reads a corner of the image, up to 1024 × 1024 pixels from the top left, and measures the shortest run of identical pixels along the rows and columns — that run length is the factor the art was scaled by. Runs that touch the edge of the buffer are ignored, and the answer is stepped down until it divides both image dimensions. A single-colour image reports 1×, meaning no evidence of scaling.
Is the preview showing the real output size?
Not always. Pixel scale draws the preview no larger than 1200 pixels on its long edge, using the largest whole factor that still fits, so what you see is real blocks rather than a browser's stretch of them. When that is lower than the factor you asked for, the readout says "preview shown at n× — the export runs at m×". The exported file always uses the factor you set.

Every tool