conversion
Image Resizer & Cropper
Resize to exact dimensions, crop, rotate, and flip images — free, runs entirely in your browser. No image leaves your device.
All tools
What is Image Resizer & Cropper?
Image Resizer & Cropper is a free browser-based tool for resizing images to exact pixel dimensions, cropping a region of interest, rotating by 90-degree increments, and flipping horizontally or vertically. It accepts PNG, JPEG, WebP, AVIF, and GIF input and outputs PNG, JPEG, or WebP. The browser UI uses the Canvas API for instant live preview — no image is sent to a server. The REST API (POST /api/image-resizer) processes images server-side using Sharp for use in scripts, CI pipelines, and AI agent workflows. Common use cases include resizing photos for social media, cropping product images for e-commerce, fixing portrait/landscape orientation issues, and generating thumbnails.
How to resize or crop your image
- Upload your image: Drag your image onto the upload area or click to browse. PNG, JPEG, WebP, AVIF, and GIF are supported. Your original dimensions appear immediately in the preview.
- Choose your operations: Use the Resize tab to set target width and height (toggle the aspect ratio lock to constrain proportions), the Crop tab to trim edges or select a preset ratio (1:1, 4:3, 16:9), and the Transform tab to rotate or flip the image. Operations apply in order: rotate → flip → crop → resize.
- Export and download: Select your output format (PNG for lossless, JPEG or WebP for smaller files) and quality level, then click Download. The processed image saves immediately.
Frequently asked questions
- Is my image uploaded to a server?
- The browser UI processes images entirely using the Canvas API — nothing is sent to any server. If you use the REST API endpoint (/api/image-resizer), your image is processed server-side using Sharp and is never stored or logged.
- What is the maximum image size?
- The browser UI has no explicit size limit — Canvas processes as large an image as your device memory allows (typically several megabytes or more). The API endpoint accepts base64-encoded images up to 3 MB, which is the Vercel free-tier request body limit.
- What does the fit option do when resizing?
- 'Inside' (default) scales the image to fit within the target width and height while preserving the aspect ratio — the output may be smaller than requested if proportions differ. 'Cover' fills the exact dimensions and crops the overflow. 'Fill' stretches to exactly the target size regardless of aspect ratio.
- What is the best output format for web images — PNG, JPEG, or WebP?
- Use WebP for photos and complex images on modern websites — it is 25–35% smaller than JPEG at comparable quality and supports transparency. Use PNG for screenshots, logos, and images with text or sharp edges where lossless quality matters. Use JPEG only when broad compatibility is required (older email clients, legacy systems). Avoid JPEG for images with transparency — use PNG or WebP instead.
- How do I resize an image to a specific aspect ratio without distortion?
- Use the 'cover' fit mode: set both width and height to your target dimensions and select cover. The image is scaled to fill the target size and the overflow is cropped symmetrically. Alternatively, use the crop tab to trim the image to your desired ratio first, then resize to the target dimensions with 'fill' mode — this gives you precise control over which part of the image is kept.
- Why does rotating a photo from my phone produce a different orientation than expected?
- Phone cameras store orientation information in the image's EXIF metadata rather than rotating the pixels. Some apps read the EXIF orientation and display the photo correctly; others ignore it and show raw pixels sideways. The Image Resizer reads EXIF orientation at load time and applies it automatically, so the preview already shows the correct orientation. Use the rotate controls only if the preview itself is wrong.
- Can I batch-process multiple images?
- The browser UI processes one image at a time. For batch processing, use the REST API endpoint (POST /api/image-resizer) from a script — send each image as base64 with your target dimensions and format. The API is stateless and deterministic, making it safe to parallelize across many images in a shell loop or CI pipeline.