Free Image Cropper – Crop to Any Aspect Ratio or Circle

Crop images to any aspect ratio or circle shape – free, instant, and 100% in your browser. No upload, no sign-up. Try it now.

Crop any image in seconds – no account needed

Drop your photo, drag the crop area to the exact size you want, and download the result. This image cropper runs entirely in your browser – nothing is uploaded to any server, so your photos stay private.

Works for square profile pictures, 16:9 YouTube thumbnails, circular avatars, or any custom size you need.

How to crop an image

  1. Upload your image – click the upload area or drag and drop a file (JPG, PNG, WebP, or GIF, up to 20 MB).
  2. Choose an aspect ratio – pick Free, 1:1 (square), 4:3, 16:9, 3:2, or Circle from the toolbar. The crop box snaps to that ratio automatically.
  3. Drag and resize the crop box – move it over the part of the image you want to keep. Drag the corners to resize while keeping the ratio locked.
  4. Pick an output format – PNG keeps transparency; JPEG is smaller for photos; WebP is the best of both.
  5. Click Download – the cropped image saves directly to your device.

Worked example

Goal: crop a 4000 × 3000 px vacation photo to a square (1:1) for an Instagram post.

  • Input: landscape-photo.jpg, 4000 × 3000 px
  • Select ratio: 1:1 – the crop box becomes a perfect square
  • Drag the box to center on the main subject
  • Output: cropped-photo.png, 1800 × 1800 px (example), ready to upload

The same workflow applies for a circular avatar: pick Circle as the ratio, center the face, and download a PNG with a transparent background around the circle.

Common crop ratios and when to use each

RatioUse caseExample platform
1:1 (square)Profile photos, feed postsInstagram, Facebook
16:9Thumbnails, hero banners, video stillsYouTube, Twitter, LinkedIn
4:3Standard photos, presentationsPowerPoint, Google Slides
3:2DSLR-style prints, blog imagesPhotography sites
CircleAvatars, logosTwitter, Slack, Discord
FreeAny custom selectionAnywhere

How to crop an image in code

Prefer automating this? Here are minimal, runnable snippets for the two most common languages.

Python (using Pillow)

from PIL import Image

img = Image.open('photo.jpg')

# Crop a square from the center
width, height = img.size
side = min(width, height)
left = (width - side) // 2
top = (height - side) // 2
cropped = img.crop((left, top, left + side, top + side))
cropped.save('square.jpg')

Install Pillow with pip install Pillow. The crop() method takes a box of (left, top, right, bottom) pixel coordinates.

JavaScript (Canvas API – runs in a browser or Node with canvas)

// Assume 'img' is an HTMLImageElement already loaded
const canvas = document.createElement('canvas');
const size = Math.min(img.naturalWidth, img.naturalHeight);
canvas.width = size;
canvas.height = size;

const ctx = canvas.getContext('2d');
const offsetX = (img.naturalWidth - size) / 2;
const offsetY = (img.naturalHeight - size) / 2;

// Draw only the square center region
ctx.drawImage(img, offsetX, offsetY, size, size, 0, 0, size, size);

// Get a PNG data URL
const dataUrl = canvas.toDataURL('image/png');

The browser's native Canvas API handles image clipping without any extra library. Swap toDataURL('image/jpeg', 0.9) for a smaller JPEG output.

How the browser cropper works

When you drop an image, the tool reads it with the File API and draws it onto an HTML Canvas element – entirely inside your browser tab. You drag the crop box to define a rectangular (or circular) region. On download, the canvas renders only those pixels and exports them as PNG, JPEG, or WebP using canvas.toDataURL().

For a circular crop, a clipping path is applied to the canvas before drawing, so pixels outside the circle are transparent. That's why the output is always PNG (JPEG doesn't support transparency).

Because the whole process happens in JavaScript locally, your image never leaves your device. There is no upload, no server, no storage.

When to use this tool – and when not to

Good fits

  • Quickly trimming a photo for social media, a CV, or a blog post
  • Making a clean circular avatar from a headshot
  • Removing distracting background from the edges of a product photo
  • Preparing a thumbnail at a fixed aspect ratio before uploading to YouTube or a CMS

Not ideal for

  • Batch cropping many files at once – use Pillow (Python) or sharp (Node.js) for that
  • Very large images over 50 MP – browser memory limits can cause slowdowns; a desktop app like GIMP or Photoshop handles those better
  • Non-destructive editing – if you need to adjust the crop later and preserve the original layers, a proper editor like Adobe Lightroom is the right tool
  • Precision pixel-perfect crops with exact coordinate input – script it in Python or use a vector editor

Your image data is processed 100% locally in your browser. Nothing is sent to any server at any point – you can even disconnect from the internet after the page loads and the tool will still work.

Ready to trim your photo? Drop your image into the cropper above, pick your ratio, and download the result in seconds.

Frequently asked questions

Is my image uploaded to a server when I use this tool?+
No. The entire crop happens inside your browser using JavaScript and the Canvas API. Your image never leaves your device, and nothing is stored or transmitted anywhere.
Is this image cropper free? Do I need to sign up?+
Completely free, no account required. Open the page, upload your image, and download the cropped result – no email, no subscription, no watermark.
What image formats can I upload?+
You can upload JPG, PNG, WebP, and GIF files up to 20 MB. The tool outputs PNG, JPEG, or WebP depending on which format you choose before downloading.
Why does circle crop always output a PNG?+
The circle shape requires a transparent background around the circular area. JPEG does not support transparency, so the output must be PNG (or WebP) to preserve the see-through edges.
What's the difference between 'free crop' and a fixed aspect ratio?+
Free crop lets you drag the crop box to any shape – useful when you just want to trim a specific region without worrying about exact dimensions. A fixed ratio like 16:9 locks the box's proportions so the width-to-height relationship stays constant no matter how you resize it.
Can I crop an image to an exact pixel size, like 1200 × 628?+
Set the aspect ratio to 'free' and crop roughly the right area first, then most image editors let you specify exact output dimensions on export. For pixel-perfect sizing, a quick Pillow script (see the code example above) gives you full control over the final pixel count.
How do I crop an image in Python without a web tool?+
Use the Pillow library. After pip install Pillow, call img.crop((left, top, right, bottom)) with the pixel coordinates of the region you want. There's a full runnable example in the 'How to crop an image in code' section above.
Will cropping reduce image quality?+
Cropping itself does not reduce quality – you're just removing pixels you don't want. If you export as JPEG, some compression is applied (that's normal for JPEG). Choose PNG or WebP for lossless output that preserves every pixel exactly.