Depixel
Upscale pixel art with the xBR algorithm, nearest-neighbor interpolation, or vector tracing. Everything runs in your browser — nothing is uploaded.
Drop an image here or click to upload
PNG, JPG, GIF, WebP — best results with small pixel art
How do I use Depixel?
Basic usage: Drop a pixel art image onto the upload area (or click to browse). Pick a scaling mode — xBR (smooth), Nearest Neighbor (sharp), Vector (SVG), or xBR & Vector — choose a scale factor, and click Scale. The result appears in the Scaled panel. Click the download button to save it.
Pixel Size: If your image has already been enlarged (e.g. each pixel is a 2×2 block), set the pixel size to match so the algorithm sees the true resolution.
Selection tools: Use the toolbar icons to select specific pixels on the original image. Magic Wand flood-fills connected pixels of the same color. Color Select picks every pixel of the clicked color across the image — clicking a color that’s already selected deselects it. Brush lets you click or drag to add/remove individual pixels. Box Select drags a rectangle to select a region. Select All selects every pixel. The × button clears the current selection.
Modifier keys: Hold Shift while using any tool to add to the existing selection. Hold Ctrl (or Cmd) to subtract from it. Without a modifier, the tool replaces the selection.
Layers: After selecting pixels, click Add Layer to commit them as a layer. Each layer has its own scaling mode (xBR, Nearest, Vector, xBR+Vec) set via the dropdown on that row. When you click Scale, each layer is isolated from the source image, processed independently with its own settings, and then composited together. This lets you, for example, keep outlines sharp with Nearest Neighbor while fills get smooth xBR blending.
Layer controls: Reorder layers with the arrow buttons — layers higher in the list render on top. Toggle visibility with the eye icon. Click a layer’s name to highlight its outline on the preview. Use the Merge… dropdown to combine two layers into one. The Reset button removes all layers.
Auto layers: Click Auto to automatically create one layer per color. Adjust the Tol (tolerance) value first: 0 creates a layer for every unique color, higher values group similar colors together (e.g. 30 merges similar shades, 100 puts everything in one layer).
Zoom & pan: Use the +/− buttons or scroll wheel to zoom. Click and drag to pan. The Fit button resets the view. The expand button stretches the panels to full width.
What is pixel art upscaling?
Pixel art upscaling enlarges small pixel art images while preserving their sharp, blocky aesthetic. Unlike standard image resizing which blurs pixels, specialized algorithms like xBR analyze neighboring pixels to intelligently smooth edges and add detail, producing clean results at 2×, 3×, 4× or higher resolutions.
What is the xBR algorithm?
xBR (scale By Rules) is a pixel art scaling algorithm created by Hyllian. It examines a 5×5 neighborhood around each pixel, calculates color differences in YUV color space, and applies edge-detection rules to decide how to interpolate new pixels. The result is smooth diagonal lines and curves without the jagged edges of nearest-neighbor scaling. This tool uses the xBRjs implementation by Josep del Rio.
What does "Pixel Size" mean?
If your pixel art has already been scaled up — for example, each logical pixel is displayed as a 2×2 or 3×3 block of screen pixels — set the pixel size to match. The tool will first shrink the image back to its true resolution before applying the scaling algorithm. Leave it at 1 if your image is at its original 1:1 pixel resolution.
xBR vs Nearest Neighbor — when to use each?
xBR (Smooth) produces anti-aliased edges and smooth curves. Use it when you want a polished, higher-resolution version of pixel art — great for game assets, sprites, and icons. Nearest Neighbor keeps every pixel perfectly sharp with no blending. Use it when you want to enlarge pixel art while preserving the exact pixel grid, such as for retro game screenshots or when you need the raw pixel look at a larger size.
What are "Blend colors" and "Scale alpha"?
Blend colors (on by default) allows xBR to interpolate between neighboring pixel colors, producing smoother transitions. Turning it off disables all color blending, giving a sharper but more pixelated result. Scale alpha applies xBR processing to the transparency channel. Enable this if your sprite has semi-transparent edges that should be smoothed; leave it off for sprites with hard transparent/opaque boundaries.
What is vector tracing?
Vector tracing converts a raster image (pixels) into an SVG made of scalable paths. The result can be resized to any dimension without losing quality. This tool uses imagetracerjs to trace pixel art into clean SVG output, with adjustable color count and blur settings.
What does "xBR & Vector" mode do?
This mode first smooths the pixel art with the xBR algorithm to produce anti-aliased edges, then traces the smoothed result into an SVG. It combines the edge-detection intelligence of xBR with the infinite scalability of vector output — ideal when you want a polished, resolution-independent version of pixel art.
Is my image safe?
Yes. This tool runs entirely in your browser using JavaScript and the HTML5 Canvas API. Your images are never uploaded to a server, stored, or logged. All processing happens locally on your device.