Resize image

Set width and height, with optional aspect-ratio lock.

Resizing changes how many pixels an image has. Enter a percentage, or a width and/or height in pixels: one side alone keeps the proportions (a 4032 × 3024 photo at width 1080 becomes 1080 × 810); both sides use a fit mode — fit inside, fill and crop the overflow, or stretch. By default Nerulio never makes an image larger than the original when you size by one side or stretch, keeps PNG, JPG and WebP in their format, and resamples with Pica's mks2013 filter. Platform presets (Instagram, YouTube, X, LinkedIn, Discord) are one click away under Advanced.

Drop image files hereProcess many files at once
No upload · processed on this device

Percent, one side, or both sides

By percent scales both sides by the same factor and rounds: 50 % of 4032 × 3024 is 2016 × 1512. By pixels with one side empty keeps the ratio: height = round(3024 × 1080 ÷ 4032) = 810. With both sides filled the picture usually has a different ratio from the box, so a fit mode decides what happens to the difference.

Fit inside (contain, the default) scales the whole picture into the box and centres it; the leftover strips are transparent in PNG/WebP, or filled with the margin colour, and white in JPG. Fill and crop (cover) scales until the box is full and cuts the overflow from both sides equally. Stretch ignores the ratio and distorts. "Never make images larger than the original" is on by default, but it only applies to percent, one-side and stretch sizing — fit and fill can enlarge a small image to reach the box.

Contain (fit inside)
Whole picture visible; margins where the ratios differ.
Cover (fill and crop)
Box completely filled; the centred overflow is cut off.
mks2013
Magic Kernel Sharp 2013, the Pica resampling filter used for every resize here.

One 4032 × 3024 photo, five ways (computed from the code)

Source size is an example 12-megapixel photo; the results follow target() and fitQuality() in the resize task.

50 %                      -> 2016 x 1512
width 1080 only           -> 1080 x 810     (3024 x 1080 / 4032 = 810)
1080 x 1080, contain      -> picture 1080 x 810, centred, 135 px margin top and bottom
1080 x 1080, cover        -> centre 3024 x 3024 cut out, scaled to 1080 x 1080
1080 x 1080, stretch      -> 1080 x 1080, faces squashed by 25 %

width 1200 on an 800 x 600 image, "never larger" on -> stays 800 x 600

Files are named after the result, e.g. photo-1080x810.jpg. Several files dropped together are resized with the same settings and can be saved as one ZIP.

Check the result

  • The result list shows each file's new pixel size ("4032×3024 → 1080×810"); check it against what the destination asks for.
  • With contain, look at the margins: transparent in PNG, white (or your margin colour) in JPG.
  • With cover, check that nothing important was cut at the sides or the top and bottom.

Troubleshooting

SymptomLikely causeHow to checkFix
The height changed although I typed only a widthOne side alone keeps the original ratioThe result is e.g. 1080 × 810Type both sides and pick a fit mode
The image did not get bigger"Never make images larger" limits percent, one-side and stretch sizingThe source is smaller than the requested sizeUntick it under Advanced; enlarging adds no detail
White or transparent bars appearedContain keeps the whole picture inside a box of another ratioResult has marginsChoose cover to fill the box, or pick a margin colour
Heads are cut offCover crops from the centreCompare with the sourceFrame it first with crop, then resize

Other ways to do it

OptionWhen it is the better choice
CropYou need to choose which part stays (not always the centre) or rotate and straighten.
Compress with a Max widthThe goal is a smaller file; it resizes and compresses in one step.
Pixel art upscalerPixel art must be enlarged with hard edges (whole-number nearest-neighbour), not smoothed.

What this page does not cover

  • Resampling is always smooth (mks2013); pixel art should use a nearest-neighbour tool instead.
  • JPG and WebP output use a fixed quality of 0.92; EXIF is not written.

Versions and sources

Behaviour from src/task/resize.js, fitQuality() in src/image.js and src/resample.js (Pica 10.0.3 with the mks2013 filter) in this repository version; the arithmetic above follows that code.

Example

Original geometric sample · 96 × 64
Original geometric sample · 96 × 64
Processed sample · 48 × 32
Processed sample · 48 × 32

Example generated with this tool. ZIP tools show their preview; inspect the downloaded archive for every file.

Resize image

Set width and height, with optional aspect-ratio lock.

How it works

  1. Open the source file
  2. Choose the processing mode and settings
  3. Run, inspect the result and download

Supported formats

PNG / JPG / WebP / AVIF / HEIC → PNG — Input decoding and output encoding depend on browser support. Animated inputs are rejected; select a still frame first.

What this tool does

Tiled high-quality mks2013/Lanczos resampling, numeric dimensions and size helpers.

Implementation and verified quality

advanced · Pica tiled mks2013 / Lanczos. Quality qualification is in progress. Pro/Flagship quality has not been established.

Before you export

Actual device memory, storage and codec support. Tested examples are evidence, not a guarantee for every file.

Frequently asked questions

What determines the supported size?

Actual device memory, storage and codec support. Tested examples are evidence, not a guarantee for every file.

Are my files uploaded?

This tool processes the files you open on your device without uploading them. Images you explicitly attach to community posts are uploaded separately. Optional engines and models are downloaded from third parties; those requests expose connection information such as your IP address.

Will my work be saved automatically?

No. Images and editing state stay in this tab; media output can use local temporary storage. Changing language preserves your work; reloading, closing the tab, or following a link to another page can clear it.