Resize a photo for Instagram

Choose the frame yourself instead of letting the app crop your photo.

Drop the photo you want to postor click to choose a file.
    Working…

    Done

    Your files are processed on this device and never sent to a server. Reload the page to clear everything from memory.

    Instagram shows feed photos at one of three shapes: square (1:1), portrait (4:5) and landscape (1.91:1). Stories and Reels covers are 9:16. A phone photo is usually 3:4, a bit taller than 4:5, so the app trims the top and bottom, and a panorama loses its sides. If the part that gets cut is someone’s head, the fix is to choose the frame before you upload.

    This page opens on the 4:5 portrait frame, the tallest a feed post can be and the one that takes up the most screen in people’s feeds. Drag the frame over the part of the photo you want, resize it from a corner, and download a JPG. Switch the aspect to square for a grid-friendly post or to 9:16 for a story.

    Instagram stores feed photos 1080 pixels wide, so any crop at least that wide will look sharp; the app scales larger images down itself. The crop runs on a canvas inside your browser, the photo stays on your device, and the download carries no location or camera data.

    A few habits make Instagram posts look better. Keep faces and text away from the outer edge of a 4:5 crop, because the profile grid shows posts as 3:4 tiles and trims a little from each side. For carousels, crop every image to the same aspect, since Instagram forces all slides to the shape of the first. And for a story, leave room at the top and bottom where the app draws your name, the reply box and stickers.

    How it works

    1. Drop the photo, or tap to pick it. The 4:5 portrait frame appears over it.
    2. Drag and resize the frame over the part to keep. Change the aspect for a square post or a 9:16 story.
    3. Crop. The JPG downloads, ready to post.

    In your browser, not on a server

    The photo is decoded by your browser (or by the libheif and Squoosh WebAssembly decoders for HEIC, AVIF and JPEG XL) and drawn onto a canvas in your tab. The crop box you drag maps to a rectangle of source pixels; those pixels are copied onto a new canvas, clipped to a circle if you asked for one, and encoded once in the format you chose. No pixel is resampled unless it has to be.

    Compared with upload-based tools: Online croppers upload the whole photo to crop a corner of it, then hand back a recompressed copy through a page full of ads. This one crops at full resolution on your device and finishes before an upload would have started.

    Verify it yourself. Load this page, turn off Wi-Fi or switch to airplane mode, and run the tool. Or open your browser's developer tools (F12, or Cmd-Option-I on a Mac), pick the Network tab, and watch it while you convert. The panel above does the same count for you.

    Questions

    What size should an Instagram photo be?

    1080 pixels wide: 1080 by 1350 for portrait 4:5, 1080 by 1080 for square, 1080 by 566 for landscape, and 1080 by 1920 for stories. Larger crops are fine; Instagram scales them down to that width.

    Can I fit the whole photo without cropping anything?

    Not on this page: it cuts a frame out of the photo rather than adding borders around it. If the whole picture must show, pick the aspect closest to the photo’s own shape (4:5 for most phone photos, which trims only a thin strip).

    Why does my photo look blurry after posting?

    Usually because the crop was smaller than 1080 pixels wide, so Instagram had to enlarge it. Crop a larger area, or start from the original photo rather than a screenshot of it.

    Is the file uploaded anywhere?

    No. There is no server in this process. The page is a static file and the work is done by code running inside your browser tab. You can load the page, turn off Wi-Fi, and it still works.

    More image tools

    Other conversions