Crop an image for Instagram
Choose profile, feed, Story/Reels or landscape format, adjust the crop and export exact dimensions. The image stays on your device.
How this works locally
- You choose a file; the page reads it from your device.
- The matching engine is loaded from fileslimmer.com and runs in a Web Worker.
- The result is written back to a location you choose on this device.
Choose the composition before exporting
The presets provide a square profile image, a 4:5 feed image, a 9:16 Story/Reel image and a landscape image. Drag the picture to place the subject, use arrow keys for smaller movements, and check that text and faces fit inside the frame.
Safe-area overlays are composition guides and are not included in the download. Platform controls and profile crops can change, so check the final post in Instagram. Larger output dimensions cannot recreate detail missing from a small original.
Accepted formats
- Reads
- JPG · PNG · WebP · AVIF
- Writes
- JPG · PNG · WebP · AVIF
Estimated memory
Your browser reports only a coarse memory hint, so this figure is an estimate.
| Device profile | Largest file | Largest image | Files per batch |
|---|---|---|---|
| Minimal | 40 MiB | 32 megapixels | 50 |
| Low | 75 MiB | 50 megapixels | 100 |
| Balanced | 150 MiB | 90 megapixels | 250 |
| High | 250 MiB | 150 megapixels | 500 |
Your browser is placed in one of these profiles from the coarse hints it exposes. A file above the limit is refused before it is read, rather than after the tab has run out of memory.
Limitations
- Lossy compression discards detail permanently. Re-compressing a file that was already compressed removes more detail without recovering anything an earlier pass removed.
- An animated GIF, WebP or AVIF is not handled by the still-image engine. It is refused rather than quietly reduced to its first frame.
- EXIF, GPS and XMP data are removed from the output. Anything visible in the picture itself — a street sign, a screen, a reflection — is untouched by that.
- An image smaller than the target box is left at its own size. Upscaling invents pixels rather than recovering them.