Image Resizer
Resize JPG, PNG or WebP to exact pixels or cm at a DPI, a percentage or a longest side — and keep each file under a size in KB when a form demands it. One image or a batch as a zip. Never crops; nothing is uploaded.
Result
Drop one or more images on the drop zone — each gets its own row here with the new dimensions, the new file size and a Download button. Two or more images also get a “Download all (.zip)” button that packs the whole batch into one file.
Your images never leave your device. Decoding, resizing and re-encoding all happen in this tab with the Canvas API — no uploads and no server. Disconnect from the internet and it still works.
Offline later: once you have opened this page with a connection, it reopens and works with none — your browser keeps a copy. Not saved: the very first Polyatic page you ever open (open it again while online), and any page or link you have never opened.
Three ways to say "smaller" (or bigger)
Every resize is really one question: what scale factor do I apply to both sides? The three modes are just three ways to derive it, and each preserves the aspect ratio unless you deliberately unlock it.
- Exact pixels — you type a width (or height) and, with the lock on, the other side follows the source's proportions. A 4000×3000 photo set to width 1280 becomes 1280×960, because 1280 ÷ 4000 = 0.32 and 3000 × 0.32 = 960.
- Percent — one slider scales both sides. 33% of a 1013×777 screenshot is 334.29 × 256.41, which rounds to 334×256. Rounding to whole pixels is unavoidable — screens have no fractional pixels — so the effective ratio can drift by a hair on small images.
- Longest side — handy for mixed batches: every image is scaled so its longer edge hits the target, whether it is landscape or portrait. With a 1600 target, a 4000×3000 landscape becomes 1600×1200 and a 3000×4000 portrait becomes 1200×1600 — consistent visual weight without thinking about orientation.
Fit-within vs exact — and why this tool never crops
When you give both a width and a height, the box you asked for usually has a different shape than the image. There are three ways out, and this tool offers two of them:
| Strategy | What happens | Offered? |
|---|---|---|
| Fit within (contain) | Scale to the largest size that fits inside the box; aspect kept, one side may be smaller than the box | Yes — the default |
| Exact stretch | Force the image to the box's exact shape; distorts if the aspect differs | Yes — with the lock off |
| Fill and crop (cover) | Scale until the box is covered, then cut off the overflow | No — never |
Fitting a 4000×3000 landscape into an 800×1200 portrait box computes both candidate scales — 800/4000 = 0.2 and 1200/3000 = 0.4 — and takes the smaller one, giving 800×600. Nothing is cut away; the output is simply shorter than the box. If a tool instead silently took the larger scale and cropped, you would lose the top and bottom of the picture — which is exactly why cropping is not offered here.
Upscaling is allowed — with the honest caveat
Set 250% or a width above the source and the tool will do it, but a note appears on that row: the new pixels are interpolated from the old ones, so the enlarged image is softer, never sharper. Upscaling is still legitimately useful — matching a required canvas size, preparing a small logo for a print layout that will be viewed from a distance — as long as you know detail is not being created. If you need real detail, you need a higher-resolution original.
Pixels, then bytes
Resizing changes the file size through the pixel area: halving both sides keeps only a quarter of the pixels. A 4000×3000 JPEG around 4 MB resized to 1280×960 lands near 300 KB at quality 0.85 before you touch any other control. The quality slider (JPEG/WebP only — PNG is lossless) then trades visible detail for bytes. If your goal is mainly a smaller file at the same dimensions, the image compressor is built for exactly that.
Exam and application forms: pixels, cm and a KB limit
Online forms often ask for something like "photo 200×230 px, JPG, under 50 KB" or "3.5 × 4.5 cm at 300 DPI". Set the size, choose JPEG, and type the limit into Max file size. The resizer then searches the quality for you: it encodes at quality 1 first to prove the limit is reachable at all, then halves the range 1–100 until it finds the highest quality whose file is still at or under the limit — at most eight trial encodes per image. "KB" here means 1,024 bytes, so 50 KB is 51,200 bytes; a form that counts 1,000-byte kilobytes is satisfied too, since the file is never larger than the number you typed times 1,024 and you can type 48 to leave a margin. At 200×230 there are only 46,000 pixels, so a 50 KB limit is usually met at a high quality; tight limits such as 10–20 KB, or a busy, grainy photo, are what force visible compression.
When a limit is impossible — a 1 KB cap on a 200×230 photo, say, where JPEG's own headers and tables already take several hundred bytes — the row says Can't fit under 1 KB, shows the smallest size it could reach, and offers no download. Lower the pixel size or raise the limit. PNG is lossless and has no quality to trade, so with a limit set "Keep original" turns PNG sources into JPEG; if you explicitly pick PNG, the limit is only checked.
Centimetres and inches are converted at the DPI you give: pixels = cm ÷ 2.54 × DPI, rounded to the nearest pixel. 3.5 × 4.5 cm at 300 DPI is 413 × 531 px; 2 × 2 inches at 300 DPI is 600 × 600 px. A JPEG output also carries that DPI in its JFIF header (units = dots per inch), which is what print dialogs and some upload validators read; WebP and PNG files from this tool carry no DPI. Every one of these settings, including the KB limit, is kept in the page address, so a link like ?w=3.5&h=4.5&unit=cm&dpi=300&kb=50&fmt=jpeg reopens the same setup, and the same limit and DPI apply to every file in a batch and in the zip.
Honest limits
HEIC/HEIF usually fails — most browsers cannot decode Apple's HEIC format, so an iPhone photo saved as HEIC should be converted to JPEG first (on the phone: Settings → Camera → Formats → Most Compatible). The EXIF orientation tag is honoured during decode, so sideways photos come out upright — but the re-encoded output carries no metadata beyond the DPI you set: EXIF, GPS and camera settings are stripped by the canvas, and wide-gamut photos are treated as sRGB. The browser's built-in encoder does the compression, so it will not match a dedicated optimiser like MozJPEG byte-for-byte. Animated GIFs are flattened to their first frame, and decoding a very large batch of multi-megapixel images needs a lot of memory — if the tab struggles, process a few at a time.