QUICKUPSCALE

INTEGER SCALING · BROWSER-LOCAL

Upscale sprite sheets without blur.

Enlarge a sprite sheet, tileset or animation strip with nearest-neighbor scaling at 2×, 4× or 8× when its size permits. Download a static PNG and calculate slices from your actual file. Your image stays on your device.

or drop it here, or paste with Ctrl/⌘ + V

PNG, JPEG, WebP or GIF · up to 10 MB · never uploaded

Use a lossless PNG for clean pixel art. JPEG and lossy WebP artifacts are preserved. GIF uses its first frame only. Output is a static PNG.

Original CC0 sprite sheet · 64×32 px · 16×16 px frames.

Sprite Sheet Grid & Slice Calculator

Calculations use your uploaded image and the latest successfully generated PNG.

Uniform grids only. Padding and spacing are not supported; packed atlases and animation metadata are not read. Enter each original frame’s size.

Tile Presets

New PPU = original PPU × actual factor. This keeps the same size in Unity world units.

Upload a sheet and generate a PNG to calculate settings.

Godot 4 Sprite2D

Unity Sprite Editor

Try a real sprite sheet

One original transparent sheet, eight frames in a 4 × 2 grid. These are actual PNG files generated from the same pixels, using the tool's nearest-neighbor scaler and a separate bilinear resampler. The images are enlarged here for inspection.

Original sheet: eight green sprites on a transparent background
Original sheet64 × 32 px · 16 × 16 px frames
Exact nearest neighbor, 4×: eight green sprites on a transparent background
Exact nearest neighbor, 4×256 × 128 px · 64 × 64 px frames
Bilinear comparison, 4×: eight green sprites on a transparent background
Bilinear comparison, 4×Same input and size · blended edges

Open the Sprite Sheet Upscaler, upload the original, and choose 4× to reproduce the result. The Godot project compares native and enlarged frames with Nearest and Linear filtering. Native Nearest filtering may already solve your task without enlarging the file. Fixtures and example project: CC0. This demonstrates pixel copying, not recovery of an already blurred image.

Split, combine or reflow instead of enlarging

Use the sprite sheet workflow map when you need separate cells, an ordered sheet from PNG frames or a strip rearranged into rows. Choose the layout task before changing pixel size.

From uploaded sheet to engine settings

Upload your original sheet, choose an available scale and enter the original frame width and height below the preview. The calculator uses the decoded image dimensions and the latest successfully generated PNG. Changing the scale updates the slice dimensions; invalid or incomplete grids cannot produce copyable engine settings.

For example, a 128×64 sheet with 16×16 frames has 8 columns and 4 rows. At 4×, the PNG is 512×256 and each frame is 64×64. If your original Unity PPU is 100, use 400 for the enlarged sheet to preserve its world size.

Uniform grids, PNG transparency and limitations

Integer nearest-neighbor scaling repeats each decoded pixel into an equal-sized block instead of blending neighboring pixels. Frame boundaries stay aligned when the source uses an even grid. The output supports transparency; source decoding still uses browser image APIs. Use a lossless PNG, since scaling preserves existing JPEG or lossy WebP artifacts.

The calculator supports equal-sized frames without padding or spacing. Frame dimensions must divide the actual sheet exactly. It does not detect margins, packed or rotated atlas regions, pivots, animation timing or JSON metadata. GIF input produces only its first frame, saved as a static PNG. Larger files offer fewer scaling factors to fit the browser output budget.

Choose whether you need a larger file

If a sprite only looks blurry inside your game, try the engine's Nearest or Point texture filter and appropriate camera settings first. A native-resolution sheet can display crisply without creating a larger texture. File enlargement is useful when an export or asset pipeline requires larger pixels; it adds no new detail and cannot repair existing blur.

After enlargement, review the engine's filtering, scale and import settings:

Read the pixel art upscaling guide for the full workflow and troubleshooting.

Load margins and spacing in Phaser

Follow the executed Phaser loader walkthrough for an original eight-frame project. It compares correct 2px margins and 3px gaps with the wrong source rectangles through the actual Canvas renderer.

Keep tile IDs stable in Tiled

For padded images, inspect the Tiled margin and spacing walkthrough. To change the number of columns, follow the twelve-tile reflow comparison, including the native wrong-order failure and measured transparent-RGB limits.

? QUESTIONS

Will upscaling a sprite sheet break the tile grid or animation frames?
Regular grids retain their proportions with integer nearest-neighbor scaling (2×, 4× or 8×). Multiply frame dimensions, margins and spacing by the same factor. Runtime bleeding still depends on filtering, padding and engine settings.
Does it preserve sprite sheet transparency?
Yes. PNG alpha channels and transparent backgrounds are fully preserved without edge halos, color bleeding or blurring.
Can I import upscaled sprite sheets into game engines?
Yes. Exported PNG dimensions scale by the selected integer factor. Update cell sizes and offsets when slicing; in Unity, multiply original Pixels Per Unit by that same factor to preserve world size.
Are my game assets uploaded to any server?
No. All sprite sheet processing runs 100% in your local browser using client-side canvas. Your unreleased game assets never leave your device.