Get a perfect square crop in seconds - no signup needed
Drop in any photo and this tool trims it to an exact 1:1 square ratio instantly - right in your browser. It's the fastest way to prep a profile picture, product photo, or social post without opening Photoshop or Canva.
Everything runs locally on your device. Nothing is uploaded to a server, so your photos stay completely private.
How to crop image to square
- Upload your image - click the upload area or drag and drop a JPG, PNG, or WebP file.
- Select the 1:1 ratio - the tool locks the crop box to a perfect square automatically.
- Drag the crop box over the part of the image you want to keep.
- Resize the box if needed by pulling its corners - it stays square no matter how you drag.
- Click Download - save your cropped square image as PNG, JPG, or WebP.
The whole process takes under 30 seconds. No account, no watermark, no cost.
Worked example: turning a landscape photo into a square
Suppose you have a vacation photo that is 1920 × 1080 pixels (wide, 16:9 landscape). You want a square version to use as your Instagram profile picture.
- Input: 1920 × 1080 px landscape photo (anyone.jpg, 1.4 MB)
- Step: Upload the file, select 1:1, center the box on the subject's face, download.
- Output: 1080 × 1080 px square image (anyone_square.jpg) - exactly what Instagram and most social platforms want.
The tool keeps the full original resolution within the crop area - so you get a sharp, high-quality square, not a blurry stretched one.
Common square image sizes by platform
| Platform / Use | Recommended square size | Notes |
|---|---|---|
| Instagram post | 1080 × 1080 px | Standard square post |
| Profile picture (most platforms) | 400 × 400 px or larger | Displayed in circle, but stored square |
| Facebook post | 1200 × 1200 px | Renders well on all devices |
| Product photo (e-commerce) | 800 × 800 px minimum | Amazon, Etsy, Shopify all prefer square |
| App icon | 1024 × 1024 px | Apple and Google both require square source |
How to crop an image to square in Python
If you need to automate square cropping - say, resizing a whole folder of product photos - the Pillow library handles it in a few lines.
# Python 3 - requires: pip install Pillow
from PIL import Image
def crop_to_square(input_path, output_path):
img = Image.open(input_path)
width, height = img.size
side = min(width, height) # use the shorter dimension
left = (width - side) // 2
top = (height - side) // 2
img_cropped = img.crop((left, top, left + side, top + side))
img_cropped.save(output_path)
crop_to_square('photo.jpg', 'photo_square.jpg')
This centres the crop on the image - the same default behaviour as the tool above. Adjust left and top to shift the focus.
How to crop an image to square in JavaScript
In a browser or Node.js project you can draw the crop onto an HTML <canvas> element.
// Runs in any modern browser
function cropToSquare(img) {
const side = Math.min(img.naturalWidth, img.naturalHeight);
const canvas = document.createElement('canvas');
canvas.width = side;
canvas.height = side;
const ctx = canvas.getContext('2d');
const offsetX = (img.naturalWidth - side) / 2;
const offsetY = (img.naturalHeight - side) / 2;
// drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh)
ctx.drawImage(img, offsetX, offsetY, side, side, 0, 0, side, side);
return canvas.toDataURL('image/jpeg', 0.9); // or 'image/png'
}
Call cropToSquare(imgElement) where imgElement is an <img> node with the photo loaded. The function returns a data URL you can assign to another image or send to a download link.
How the tool works
When you drop an image, the tool reads it with the browser's File API and renders it on a hidden <canvas> element - no data ever leaves your machine. You drag a locked 1:1 crop region over the preview; once you click Download, the canvas exports only the selected pixels as a new image file.
The output resolution matches the pixel dimensions of the area you selected - so cropping the center 1080 × 1080 pixels from a 4K image gives you a full-resolution 1080 × 1080 output, not an upscaled or downscaled copy. For the technical details on how browsers handle image data, see MDN's Canvas API documentation.
When to use this tool (and when not to)
Good fits
- Profile pictures - Twitter, LinkedIn, Facebook, and most platforms expect a square image even if they display it as a circle.
- Product images - e-commerce platforms like Amazon and Etsy require square product photos.
- Social media posts - Instagram grid posts and Facebook square posts look best at 1:1.
- App icons - both Apple App Store and Google Play need a square source icon.
- Avatars - quickly trim and center a face before uploading to any platform.
When another approach works better
- You need a non-square ratio - use the 16:9 or 4:3 option in the same tool for YouTube thumbnails or presentation slides.
- You need to resize (not just crop) - cropping keeps pixels; resizing scales them. Use a dedicated image resizer if you need a specific output pixel count.
- Batch processing hundreds of files - the Python snippet above or a CLI tool like ImageMagick (
convert input.jpg -gravity center -extent 1:1 output.jpg) will be faster than uploading one at a time. - You need background fill instead of a crop - if the subject is tall and thin and you don't want to cut anything off, an 'add white padding' approach is better than cropping.
Quick tip: Drop your image above, pick the 1:1 square setting, drag the box to the best spot, and download - your square-ready image is ready in under a minute.