Browser-based · Image resizing
Resize to a spec. Prove it was met.
Resize one image or a batch, declare the output requirement a destination gave you, then check the real encoded result against it — without sending the image anywhere.
Image resizing
Resize, compare and check
Dimensions are this tool's question. If the file is the right size but too heavy, Image Compressor is the same engine pointed at bytes instead.
Drop images into your local studio
Choose one image or a batch. You can also paste from the clipboard.
Browse imagesJPEG, PNG, WebP, supported AVIF · up to 25 MB each · 60 files
Files are processed in this browser tab
- Runs locally
- No account required
- Batches and packs
- Checked, not estimated
Three-step workflow
From source file to checked delivery package
The studio keeps setup, visual inspection and compliance separate so a download is never mistaken for a verified result.
- 1
Add and inspect
Choose, drop or paste one or more files. Header inspection identifies dimensions, format, transparency and animation before processing.
- 2
Declare the output
Pick a resize method, fit policy, format, file-size ceiling, no-upscale rule and filename pattern. Per-file overrides stay visible in the queue.
- 3
Compare, check, download
Review original and output, read the per-file contract, then download one file, the selected set or a ZIP with its manifest.
Resize methods
Choose the right resize method
Start with the constraint the destination gave you: shape, crop, transparency and file size can matter as much as width and height.
| Method | Use it when | Result | Decision to review |
|---|---|---|---|
| Exact size | A destination requires one width and height | Fill and crop, fit and pad, or explicit stretch | Composition or padding must be decided when ratios differ |
| Fit inside | Both dimensions are maximums | Whole source remains visible | The result may be smaller on one axis |
| Fill and crop | The frame must be completely filled | Exact canvas with deliberate crop | Some edge content is removed |
| Pad | The complete source and exact canvas are both required | Letterboxed output with chosen background | JPEG cannot keep a transparent pad |
| Percentage | You know the scale, not the final dimensions | Both axes change together | Values above 100% enlarge |
| Long or short edge | A CMS or gallery limits one edge | Proportional dimensions from one constraint | The other edge varies by source |
| Print dimensions | You have a physical size and PPI target | Pixel dimensions calculated from inches, cm, or mm | The file's DPI metadata is not rewritten |
| Responsive pack | A website needs several source widths | Multiple files, ZIP, manifest, srcset and picture snippet | Art direction still needs separate crops |
Exact size
- Use it when
- A destination requires one width and height
- Result
- Fill and crop, fit and pad, or explicit stretch
- Review
- Composition or padding must be decided when ratios differ
Fit inside
- Use it when
- Both dimensions are maximums
- Result
- Whole source remains visible
- Review
- The result may be smaller on one axis
Fill and crop
- Use it when
- The frame must be completely filled
- Result
- Exact canvas with deliberate crop
- Review
- Some edge content is removed
Pad
- Use it when
- The complete source and exact canvas are both required
- Result
- Letterboxed output with chosen background
- Review
- JPEG cannot keep a transparent pad
Percentage
- Use it when
- You know the scale, not the final dimensions
- Result
- Both axes change together
- Review
- Values above 100% enlarge
Long or short edge
- Use it when
- A CMS or gallery limits one edge
- Result
- Proportional dimensions from one constraint
- Review
- The other edge varies by source
Print dimensions
- Use it when
- You have a physical size and PPI target
- Result
- Pixel dimensions calculated from inches, cm, or mm
- Review
- The file's DPI metadata is not rewritten
Responsive pack
- Use it when
- A website needs several source widths
- Result
- Multiple files, ZIP, manifest, srcset and picture snippet
- Review
- Art direction still needs separate crops
Related operations
Resize, crop, compress and upscale solve different problems
- Resize
- Changes pixel dimensions. A proportional resize keeps the shape; a deliberate fit policy decides what happens when the requested shape differs.
- Crop
- Removes edge content to change framing or aspect ratio. Fill and crop in this studio combines cropping with an exact output size.
- Compress
- Changes the encoded byte weight. A smaller canvas often helps, but image detail, format and quality still determine the final file size.
- Upscale
- Enlarges dimensions but cannot recover detail that the source never recorded. Protection is on by default and requires explicit permission to continue.
Common workflows
Create an output requirement
Apply a useful starting point, then let the delivery check use the real encoded output rather than an estimate.
Marketplace image
- Contract
- 1200 × 1200
- Settings
- Fill and crop · WebP · no upscale
- Review
- Use the focal marker per file so important content survives the square crop.
Maximum 200 KB
- Contract
- Fit within 1920 × 1920
- Settings
- WebP · bounded quality search
- Review
- If minimum quality still misses, permit bounded dimension reduction or revise the target.
Email attachment
- Contract
- Fit within 1600 × 1600
- Settings
- JPEG · 78 upper quality · 500 KB ceiling
- Review
- A transparent source needs an explicit background because JPEG has no alpha channel.
Website source set
- Contract
- 320, 480, 768, 1024, 1280, 1600
- Settings
- Responsive pack · predictable names
- Review
- Download the variants, srcset, picture snippet and JSON manifest together.
Format and quality guide
Choose the best image format
Output availability is detected by encoding a test canvas. A format is not offered merely because the browser name suggests support.
| Option | What the studio does | Good fit |
|---|---|---|
| Same as source | Keeps a supported source encoding when this browser can write it | Predictable handoff without a format change |
| Auto | Uses runtime encoder support and source transparency | A practical browser-chosen default |
| JPEG | Lossy; no transparency; requires a background for alpha sources | Photographs and broad compatibility |
| PNG | Lossless; transparency; no meaningful browser quality slider | Logos, diagrams and sharp flat graphics |
| WebP | Lossy or alpha-capable browser output | Modern web photographs and mixed batches |
| AVIF | Shown only after a real encode probe succeeds | Small modern output when encode time is acceptable |
Same as source
Keeps a supported source encoding when this browser can write it
Good fit: Predictable handoff without a format change
Auto
Uses runtime encoder support and source transparency
Good fit: A practical browser-chosen default
JPEG
Lossy; no transparency; requires a background for alpha sources
Good fit: Photographs and broad compatibility
PNG
Lossless; transparency; no meaningful browser quality slider
Good fit: Logos, diagrams and sharp flat graphics
WebP
Lossy or alpha-capable browser output
Good fit: Modern web photographs and mixed batches
AVIF
Shown only after a real encode probe succeeds
Good fit: Small modern output when encode time is acceptable
Responsive images
Ship several right-sized sources instead of one camera-sized file
Responsive width generation preserves the source ratio, filters out widths that would enlarge by default, and packages the files with copyable markup.
- 01Add, remove or reorder the widths your layout actually requests.
- 02Build the local pack. Each variant is encoded through the same bounded worker queue.
- 03Use the generated srcset or picture snippet, then add meaningful alt text in the consuming page.
<picture>
<source type="image/webp"
srcset="hero-480w.webp 480w,
hero-768w.webp 768w,
hero-1280w.webp 1280w">
<img src="hero-1280w.webp"
alt="Describe the image" loading="lazy">
</picture>Privacy and processing
Private by design: your images stay in the browser
The upload control reads local files into browser memory. It does not send selected image bytes through fetch, XHR, a server action, an API route or an analytics payload.
Local by design
Header inspection, decoding, resizing, target search, preview blobs and ZIP creation run in browser code on this device.
Worker-first pipeline
When supported, createImageBitmap, OffscreenCanvas and a bounded worker pool keep expensive work away from the interface thread. A tested canvas fallback remains available.
Nothing autosaves the files
Only optional recipes and settings are stored locally. Removing a file or closing the tab releases its object URLs and in-memory output.
Honest technical limitations
Limitations of browser-based image resizing
- Re-encoding does not preserve EXIF, GPS, camera metadata or ICC profiles. Orientation is applied to pixels before new metadata-free output is created.
- Animated GIF, WebP and APNG sources are skipped unless first-frame output is explicitly enabled. The output is a still image, not a resized animation.
- AVIF input still depends on this browser's decoder. AVIF output appears only after a real encoder probe succeeds.
- The studio is not a colour-managed prepress workflow and does not promise professional print colour accuracy or write DPI metadata.
- Target-size search is bounded to eight quality attempts per dimension. Detailed images can miss an aggressive target at the minimum quality.
- Canvas allocation varies by browser and device. The studio caps files, batch bytes, megapixels and edge length, then reports memory failures with recovery guidance.
FAQ
Image resizing questions, answered precisely
Got a size a destination insists on?
Declare it above and the studio checks the real encoded output against it — rather than estimating.