# Image Resize — AO tool

> Resize as many images as you like at once — no file-count limit, nothing uploaded. Runs entirely client-side: no upload, no server, no file limits, no sign-up.

Human page: https://abstractobjective.dev/tools/image-resize/
Status: live · Category: image

## Input and output
- In: jpg, jpeg, png, webp, gif, bmp, avif, heic, heif
- Out: keep, webp, jpg, png, avif

## Programmatic use (the AI-facing twin)
All computation happens locally in the page context.

- `window.AOImageResize.resizeBlob(blob, {mode, value, format, quality}) -> Promise<{blob, width, height}>`
  Resize an image Blob. mode: longest|width|height|percent. value: pixels, or percent when mode is percent. format: keep|webp|jpg|png|avif. quality: 0..1.

## Notes
- Aspect ratio is always preserved; you choose which dimension drives it.
- Batch is unlimited — the only ceiling is your device's memory.
- EXIF orientation is honoured, so photos taken on a phone do not come out sideways.

## Properties
- Privacy: files never leave the browser tab.
- Limits: none imposed by us; the practical ceiling is your device's memory.
- Cost model: client-side compute — free without caps, sustainably.

---

## Batch without a limit

Most free resizers cap the batch — twenty files, or ten a day, or "upgrade for bulk". Those caps exist because each of those sites is paying for the bandwidth and the processor time your files consume on their servers. This page uses your computer instead, so there is nothing for us to ration: drop five images or five hundred, the cost to us is identical.

Every file is resized locally and stays on your machine. Nothing is uploaded, so nothing has to come back down either — which is why a large batch here is usually faster than a small one elsewhere.

## Choosing the size

**Longest side** is the safest default when images are a mix of portrait and landscape: every one ends up within the same bounding box, whichever way round it is. **Width** or **Height** pin one dimension exactly — useful when images must line up in a column or a row. **Percentage** scales everything relative to its own original, which keeps the relative differences between a set of photos intact.

Aspect ratio is always preserved. Nothing here will ever stretch your image, because a squashed photo is almost never what anyone wanted.

## What it does to quality

Resizing uses high-quality resampling, and EXIF orientation is honoured — a photo shot in portrait on a phone comes out portrait, not on its side.

Shrinking is lossy by nature: the discarded pixels are gone. Enlarging cannot invent detail that was never captured, so making an image bigger will look soft — that is a property of the image, not of this tool. If you keep the original format and it is a JPEG, the file is re-compressed once; choose PNG output if you would rather not lose anything further.
