Crop any image to an Instagram post.

Instagram's feed is built around three crop sizes: a 1:1 square, a 4:5 portrait, and a 1.91:1 landscape. Drop an image, get the exact pixels Instagram wants. Nothing leaves your browser.

The exact sizes Instagram uses for feed posts

Instagram supports three image aspects in the feed, and the app re-crops anything that does not match. Here are the working sizes:

  • Square (1:1) — 1080×1080. Safe default. Always renders edge-to-edge in the grid and the feed.
  • Portrait (4:5) — 1080×1350. Tallest image Instagram allows in the feed. Takes up more screen, often gets more attention.
  • Landscape (1.91:1) — 1080×566. The widest the feed accepts. Anything wider gets letterboxed or cropped.

Instagram caps the stored image at 1080 pixels wide. Uploading larger does not give you sharper output — Instagram downscales server-side. Match the target exactly and you skip a re-encode.

Source: Meta's supported aspect ratios for feed doc, current as of the most recent update.

Common mistakes

Wrong aspect, then surprise crop in the feed. A 16:9 phone photo dropped into Instagram's 4:5 feed slot loses about 30% of the frame — usually the top and bottom. If the subject is off-center, faces or text disappear. Crop before upload so you control what stays.

Uploading at full camera resolution. A 4032×3024 iPhone shot gets downscaled to 1080 wide on Instagram's servers using their default resampler. You lose control over the resampling quality. Pre-cropping at 1080 means you pick the resampler.

Forgetting the safe zone. Instagram's grid view shows a center-cropped 1:1 thumbnail of every post, even portrait ones. If your subject is off-center in a 4:5 portrait, it will be cut off in the grid preview.

Mixing aspects in a carousel. Instagram locks the carousel to the aspect of the first image. If image 1 is square and image 2 is portrait, image 2 gets center-cropped to square. Decide the aspect before you build the carousel.

How to crop without losing the subject

Drop your image into the cropper and pick the Instagram preset that matches the slot you're posting to. The crop box auto-centers on the detected subject — a face for portraits, the visual focal point for screenshots and product photos. Drag the box if you want a different framing; the exported pixels match what you see.

A few practical defaults that work for most feed posts:

  • Square (1:1) for product shots, quotes, and anything that needs to read in the grid.
  • Portrait (4:5) for selfies, full-body shots, and anything where vertical space adds context. This is the highest-engagement aspect for most accounts because it takes up more screen.
  • Landscape (1.91:1) for wide scenes — landscapes, group shots, screenshots — where cropping to square would cut something important.

When you export, the file lands at exactly 1080 wide, encoded as JPG or WebP. Under 200 KB for most photos, well below Instagram's 30 MB upload cap.

Privacy: nothing leaves your browser

Every image you drop in stays on your device. The crop runs in a Web Worker using the browser's built-in canvas APIs and Pica for high-quality resampling. No upload, no server, no analytics on the image itself. EXIF metadata is stripped from the output by default — useful when you don't want GPS coordinates riding along with your post.

You can verify this by opening DevTools Network and watching as you crop. There are no requests.

Frequently asked

What size is an Instagram post?

Instagram supports three sizes in the feed: 1080×1080 (1:1 square), 1080×1350 (4:5 portrait), and 1080×566 (1.91:1 landscape). The square is the safest default; the portrait gets the most screen real estate.

Why does Instagram crop my photo?

Instagram only accepts images between 1.91:1 and 4:5. Anything wider gets letterboxed; anything taller gets center-cropped. Pre-cropping to one of the three supported aspects avoids the surprise.

Does Instagram compress my image?

Yes. Instagram re-encodes any upload above 1080 pixels wide and applies its own JPEG quality. Uploading at exactly 1080×1080 (or 1080×1350) skips the resize step, so the only re-encode is Instagram's. The output looks visibly cleaner.

Will this work on my iPhone HEIC photos?

Yes. HEIC is decoded in-browser via libheif (wasm) — drop the file straight from your camera roll, no conversion step.