# Resizo — Instagram Image Resizer

The **Instagram Image Resizer** at [resizo.in/resize-image-for-instagram/](https://www.resizo.in/resize-image-for-instagram/) is a dedicated tool for the full Instagram ecosystem: one master image in, a ZIP of all 28 correctly sized Instagram variants out — feed posts, carousel, stories, reels, Explore, Highlights, the ten Instagram Ad placements, Shopping product images, and a Live thumbnail. All processing runs in the browser via the HTML5 Canvas API. No upload, no sign-up, no watermark.

Last reviewed: 2026-05-29. Dimensions verified against Instagram's official creator and ad guidelines for 2026.

## What it does

Upload a single source image (JPG, PNG, WebP, or GIF up to 20 MB) and Resizo generates every Instagram surface in a single pass. Pick **Cover** (crop to fill) or **Contain** (preserve full image with letterbox padding), set a focal point so faces and subjects stay centered across all 28 aspect ratios, then download every preset as a ZIP — each filename prefixed with its preset (`instagram-feed-square-1080x1080.jpg`, `instagram-story-full-screen-1080x1920.jpg`, etc.).

Workflow:

1. **Upload** — drop a JPG, PNG, WebP, or GIF onto the upload zone, or click to browse.
2. **Mode** — pick Cover (crop) or Contain (letterbox padding).
3. **Focal point** — click or drag on the preview to set where each crop should center.
4. **Output format** — JPG (smaller files), PNG (lossless, recommended for graphics), or WebP (modern).
5. **Select presets** — all 28 selected by default; deselect any you don't need.
6. **Download** — receive a single ZIP, named by preset and dimensions.

Typical end-to-end time: 2–4 seconds for all 28 variants from a 4K source on a modern laptop.

## Verified 2026 Instagram presets

All 28 dimensions verified May 2026 against Instagram's official creator and advertising guidelines.

### Profile (1 preset)

| Variant | Dimensions (px) | Aspect | Best for |
| --- | --- | --- | --- |
| Profile Picture ✦ | 320 × 320 | 1:1 | Avatar (displayed as circle) |

### Feed Posts (3 presets)

| Variant | Dimensions (px) | Aspect | Best for |
| --- | --- | --- | --- |
| Feed — Square ✦ | 1080 × 1080 | 1:1 | Classic square feed post |
| Feed — Portrait ✦ | 1080 × 1350 | 4:5 | Maximum feed real estate |
| Feed — Landscape | 1080 × 566 | 1.91:1 | Wide landscape feed post |

### Carousel (3 presets)

| Variant | Dimensions (px) | Aspect | Best for |
| --- | --- | --- | --- |
| Carousel — Square ✦ | 1080 × 1080 | 1:1 | Standard carousel card |
| Carousel — Portrait | 1080 × 1350 | 4:5 | Tall carousel card |
| Carousel — Landscape | 1080 × 566 | 1.91:1 | Wide carousel card |

### Stories & Reels (4 presets)

| Variant | Dimensions (px) | Aspect | Best for |
| --- | --- | --- | --- |
| Story — Full Screen ✦ | 1080 × 1920 | 9:16 | Full-bleed Story background |
| Story — Safe Zone | 1080 × 1420 | ~9:12 | Story with header/footer UI clear |
| Reels Cover ✦ | 1080 × 1920 | 9:16 | Reels grid cover thumbnail |
| Reels — Full Screen | 1080 × 1920 | 9:16 | In-feed Reels playback |

### Explore & Highlights (2 presets)

| Variant | Dimensions (px) | Aspect | Best for |
| --- | --- | --- | --- |
| Explore Thumbnail | 1080 × 1080 | 1:1 | Explore-page grid tile |
| Highlight Cover | 1080 × 1920 | 9:16 | Story Highlight cover icon |

### Instagram Ads (10 presets)

| Variant | Dimensions (px) | Aspect | Best for |
| --- | --- | --- | --- |
| Feed Ad — Square ✦ | 1080 × 1080 | 1:1 | Sponsored feed (square) |
| Feed Ad — Portrait | 1080 × 1350 | 4:5 | Sponsored feed (portrait) |
| Feed Ad — Landscape | 1080 × 566 | 1.91:1 | Sponsored feed (landscape) |
| Stories Ad — Full | 1080 × 1920 | 9:16 | Full-screen Stories ad |
| Stories Ad — Safe | 1080 × 1420 | ~9:12 | Stories ad with CTA overlay |
| Reels Ad | 1080 × 1920 | 9:16 | In-stream Reels placement |
| Carousel Ad Card | 1080 × 1080 | 1:1 | Each card in a carousel ad |
| Explore Ad | 1080 × 1080 | 1:1 | Explore-page placement |
| Shopping Ad — Square | 1080 × 1080 | 1:1 | Shopping feed ad |
| Shopping Ad — Landscape | 1080 × 566 | 1.91:1 | Shopping ad (landscape) |

### Instagram Shopping (4 presets)

| Variant | Dimensions (px) | Aspect | Best for |
| --- | --- | --- | --- |
| Product Image — Square ✦ | 1080 × 1080 | 1:1 | Catalog product photo |
| Product Image — Portrait | 1080 × 1350 | 4:5 | Tall catalog product photo |
| Shop Tab Cover | 1080 × 1080 | 1:1 | Shop tab banner |
| Collection Cover | 1080 × 1080 | 1:1 | Shopping collection cover |

### Instagram Live (1 preset)

| Variant | Dimensions (px) | Aspect | Best for |
| --- | --- | --- | --- |
| Live Thumbnail | 1080 × 1920 | 9:16 | Pre-Live cover thumbnail |

✦ indicates a high-priority preset rendered first during batch processing.

Instagram recommends JPG for photos at quality 80–90 (Instagram re-compresses on upload, so a clean 1080-wide source is essential), and PNG for graphics with sharp edges or transparency. All dimensions sourced from Instagram's official creator and ad guidelines.

## Focal-point-aware cropping

Instagram's 28 presets cover four distinct aspect ratios — from a 9:16 Story (very tall) to a 1.91:1 landscape feed post (wide) — derived from the same source image. Naive center-crop loses the subject when source and target ratios diverge.

Resizo lets you click or drag anywhere on the source preview to set a focal point in normalized (0–1) coordinates. The crop math keeps that point near the center of every output:

- When source aspect > target aspect (source wider): crop horizontally, anchor X to the focal point.
- When source aspect < target aspect (source taller): crop vertically, anchor Y to the focal point.
- Always clamp so the crop window stays inside source bounds.

The 320 × 320 profile picture gets a circular preview but a square PNG/JPG export — Instagram applies the circular mask client-side, so the saved file stays square so the subject doesn't get clipped if the mask geometry ever changes.

## Cover vs Contain

The two resize modes solve different problems:

- **Cover (crop):** fills the target frame by cropping. Use for feed posts, Stories, Reels covers, and ad images — anywhere Instagram will hard-crop the output to its own dimensions. Source must contain enough subject in the crop window. Default mode.
- **Contain (letterbox):** preserves the full source image and adds padding to match the target aspect. Use for graphics or logos where you can't afford to lose any pixels, or for source images that already match Instagram's recommended aspect.

## Story Safe Zone

A Story is 1080 × 1920 px (9:16), but Instagram overlays the top ~240 px (username, timestamp, close button) and bottom ~240 px (reply bar, share buttons) with its own UI. The **Story — Safe Zone** preset at 1080 × 1420 enforces that central safe area as the crop target so faces, text, and CTAs stay clear of Instagram's chrome. The same 1080 × 1420 safe zone applies to Stories ads with a CTA button.

## Privacy and architecture

- **Zero upload.** The image is read with `FileReader`, drawn onto in-memory `HTMLCanvasElement` instances, and exported via `canvas.toBlob()`. No network call carries image bytes.
- **Zero tracking.** No third-party analytics on image data, no cookies on the resizer, no fingerprinting.
- **Zero account.** No sign-up, no rate limit, no watermark on outputs.
- **ZIP assembled in-browser.** JSZip runs locally; the resulting blob is downloaded with an `ObjectURL`.
- **Works offline** after first load — Service Worker caches the page assets.

## Available in 9 languages

The Instagram resizer is fully localized — every UI string, JSON-LD schema, FAQ, How-To section, and table caption is translated. Cross-language hreflang is wired up across all locales.

| Locale | URL |
| --- | --- |
| English | https://www.resizo.in/resize-image-for-instagram/ |
| Spanish | https://www.resizo.in/es/resize-image-for-instagram/ |
| French | https://www.resizo.in/fr/resize-image-for-instagram/ |
| German | https://www.resizo.in/de/resize-image-for-instagram/ |
| Portuguese (pt-BR) | https://www.resizo.in/pt/resize-image-for-instagram/ |
| Indonesian | https://www.resizo.in/id/resize-image-for-instagram/ |
| Arabic (RTL, Cairo font) | https://www.resizo.in/ar/resize-image-for-instagram/ |
| Korean | https://www.resizo.in/ko/resize-image-for-instagram/ |
| Swahili | https://www.resizo.in/sw/resize-image-for-instagram/ |

The Arabic build sets `dir="rtl"` on `<html>` and preloads the Cairo font; Western numerals (0–9) are used throughout so dimension labels remain readable inside the RTL run.

## FAQ

**What is the best image size for an Instagram post?**
1080 × 1080 px for square, 1080 × 1350 px for portrait (4:5), and 1080 × 566 px for landscape. Portrait posts get the most feed real estate and tend to perform best.

**What size should an Instagram Story be?**
1080 × 1920 px (9:16). The full-screen variant fills the entire device; the safe-zone variant (1080 × 1420) keeps content clear of Instagram's top and bottom UI overlays. The same dimensions apply to Reels.

**What is the Instagram ad image size?**
Sponsored feed: 1080 × 1080 (square), 1080 × 1350 (portrait), or 1080 × 566 (landscape). Stories and Reels ads: 1080 × 1920. Carousel ad cards: 1080 × 1080. Shopping ads: 1080 × 1080 or 1080 × 566.

**What size should Instagram Shopping product images be?**
1080 × 1080 px (1:1) is the standard product photo. 1080 × 1350 px (4:5) portrait works well for fashion and lifestyle products that benefit from more vertical space.

**How do I resize an image for Instagram without losing quality?**
Use bicubic interpolation (not bilinear), export at JPG quality 85–90, and start from Instagram's exact pixel dimensions. Browser-based tools like Resizo process this without server re-compression. Instagram applies its own compression on upload, so a high-quality 1080 px-wide source is essential.

**Does Resizo upload my photos to a server?**
No. Resizo never touches any server — your image is read by your browser, resized by the Canvas API on your machine, and downloaded as a ZIP from local memory. The only Instagram involvement is that you upload the resulting files to Instagram yourself.

**Can I resize for just one Instagram size instead of all 28?**
Yes. Click "Deselect All" then check only the sizes you need before downloading.
