Social Post Image Cropper — decide the crop before the feed does
A phone photo is usually 4:3 or 3:2, and the slot you are posting it into usually is not. Something has to give, and if you leave the decision to the upload the picture is trimmed from the centre — which is how a group shot arrives with a head sliced off, or a product photo arrives with the product half outside the frame. This image cropper makes that decision explicit: you choose the target shape, drag a focal point to say what matters, and watch the discarded area dim before you export anything. Your image is processed entirely in your browser and is never uploaded to a server.
How the crop window is worked out
Call your picture sw × sh after its rotation metadata has been applied, and the target shape r = tw / th. At zoom zero the tool takes the largest rectangle of shape r that fits inside the picture — sh × r wide when the source is wider than the target, sw / r tall when it is not. That is the tightest legal crop: it fills the target completely with no blank edge, and nothing wider or taller of that shape would still fit. The zoom slider shrinks the rectangle from there, down to a fifth of its widest size, so zooming in always means keeping less of the picture.
One focal point, two ways to move it
The rectangle is centred on a focal point stored as a fraction of the picture — 0.5, 0.5 is dead centre — and then that centre is clamped so the rectangle can never hang off an edge. Drag the frame, press somewhere outside it to jump there, nudge it with the arrow keys, or type the two percentages directly: all four write to the same value, so the preview and the exported file can never disagree about where the crop sits.
When the rectangle already spans the full height of your picture — which is what happens at zoom zero whenever the source is wider than the target — there is no vertical framing left to choose, and the drag resists on that axis. The tool says so rather than leaving you pushing at something that will not move. Zoom in and both axes free up again.
When the size you want is bigger than the picture you have
Asking for a 1080 × 1350 file from a 720 × 900 crop means enlarging the pixels, and enlarging cannot add detail that was never captured — it adds bytes and softness. So the tool will not do it quietly. It names the factor, and offers three ways forward: enlarge anyway with the warning in view, fit the whole picture inside the frame with a matte band around it in a colour you choose, or export at the crop's own resolution, which keeps the shape exactly and lets the pixel count fall where it falls.
Integer dimensions that actually match the shape
A crop window is fractional; a file's dimensions are not. Rounding the width and the height separately is how a 4:5 export comes out 1080 × 1349, so the height here is always derived from the rounded width. The final integer size is shown before you export, not discovered afterwards. Very large requests are brought under a canvas area ceiling of 16,777,216 pixels, keeping the shape intact, because a canvas past roughly that size hands back a blank image on some mobile browsers rather than failing outright.
Formats, file names and platform figures
JPEG and WebP take a quality setting; PNG is lossless and ignores one entirely, so the slider is hidden rather than left there doing nothing. The exported file is named from your source file plus the output size — beach-1080x1350.jpg — with the name rebuilt from safe characters, since a file name that arrived from somewhere else is input, not a label. Platform slots come from a shared dataset where a row exists only if the figure was read on that platform's own documentation, with the page address and the date recorded. Where no such row exists, the tool asks you for the numbers instead of guessing at them.