Photo Editor
Crop, straighten, adjust, filter, mark up, blur and resize a photo, without uploading it.
Runs entirely in your browser
Loading the tool…
Press Enter to apply the crop and go back to editing.
Drag over what to hide; drag a region to move it. Blur and pixelate can sometimes be undone on text, so use Black box for anything that must not be read.
Your picture is opened by this page and never uploaded. Every edit is made on this device, and the page keeps working with the network off.
Open a photo and everything most photos need is here, in six tools down the side. Crop to a free shape or a standard one, from square to 16:9, turn it a quarter at a time, flip it, and straighten a crooked horizon by dragging the ruler a tenth of a degree at a time; let go of the frame and the view zooms in on what you kept. Or pick where the picture is going, an Instagram post or story, a YouTube thumbnail, a LinkedIn banner, a 6 by 4 print, and the crop takes that shape and the photo is saved at exactly that size. Finetune has eight controls: brightness, contrast, saturation, exposure, temperature, gamma, clarity and vignette. Filter offers thirteen looks, each previewed on your own photo and each with a strength. Annotate draws freehand, lines, arrows, rectangles, ellipses and text, in eight colours and three weights, and a drawn shape can be picked up and moved or deleted. Text stays text: double-click it to change the words, or select it and pick another colour or size. Redact hides what should not be seen, a face, a number plate, an address, by blurring it, pixelating it or covering it with a black box. Resize sets the size it is saved at, in pixels or as a percentage.
Nothing is uploaded. The photo is opened by this page and every edit is computed in WebAssembly compiled from Rust, running in this tab: the crop and rotation, every colour control and filter, every stroke and shape. The page is served with a rule that stops it opening a connection to anywhere, so it works with the network off, and a photo of your passport, your children or your whiteboard stays on your computer.
What you see while editing is the real thing at screen size, not a sketch of it. The preview is drawn from a copy of your photo about as large as your screen, by the same code that draws the saved file from the original, so the crop lands on the same pixel and the colours match. Undo and redo go back through every step, and the original is never changed: Revert is always one click away.
Done saves the result as JPG, PNG or WebP at the full resolution of the crop, or at the size set under Resize. For making a file small enough for an upload form, Compress an image searches for the quality that fits a size limit; for an iPhone photo, HEIC to JPG opens it first.
How to use it
- Open a photo with the Open button, or drop it on the picture. A sample is loaded until you do.
- Pick a tool on the left: Crop, Finetune, Filter, Annotate or Resize.
- Drag the crop's corners or edges, and drag the ruler under it to straighten.
- In Finetune, pick a control and drag its ruler; a dot marks each control you have moved.
- Press Done, choose JPG, PNG or WebP, and Download.
Questions
Is my photo uploaded?
No. It is read by this page and edited by WebAssembly running in the tab, and the page is served with a security policy that forbids it from opening a network connection at all. Disconnect after the page has loaded and every tool, and saving, still works.
How do I apply the crop?
Press Enter, or pick any other tool: the picture is then shown cropped, and you are back in the tool you were using before Crop. The crop is part of the edit from the moment you let go of the frame, and the view zooms in to show exactly what will be kept, with the rest washed out around it, so Done saves it either way. Come back to Crop to change it, or Revert to start again.
What sizes are there for Instagram and other sites?
Under Size for, in Crop: Instagram posts at 1080 × 1080 (square), 1080 × 1350 (portrait) and 1080 × 566 (landscape) and stories and reels at 1080 × 1920; Facebook, X, LinkedIn, YouTube, TikTok and Pinterest posts, covers and banners; and photo prints at 300 DPI. Choosing one locks the crop to that shape, so you only choose what goes in it, and saves at exactly those pixels. If the crop is smaller than the size, it says it will be enlarged.
How do I blur a face or a number plate?
Open Redact, choose Blur, Pixelate or Black box, and drag a box over what to hide. Strength sets how heavy the blur or how big the blocks are. Drag a box to move it, click it and press Delete to remove it. Redaction is applied before arrows and text, so a label pointing at a blurred face stays sharp.
Is blurring safe for hiding text, like a password or an account number?
Not always. A blurred or pixelated line of text can sometimes be read back by guessing what it says, blurring each guess the same way and comparing, and that has been done to real documents. For anything that must not be read, use Black box: the pixels underneath are replaced, not smeared, and the saved file has nothing left to recover.
How do I straighten a crooked photo?
In Crop, drag the ruler under the picture left or right: it turns the photo up to 45 degrees either way, in tenths of a degree, and the arrow keys nudge it once it is selected. The crop shrinks as needed so no empty corner is ever included. Line the horizon up with the thirds grid on the crop frame. Double-click the ruler to put it back to zero.
What is the difference between brightness, exposure and gamma?
Exposure works in light, like opening the camera's aperture: one step up doubles the light, so highlights brighten more than shadows and colours stay natural. Brightness adds the same amount to every value, which also lifts the blacks. Gamma brightens or darkens the middle tones and leaves black and white where they are, which is usually what a photo that is 'a bit dark' actually needs.
What does clarity do?
It raises contrast locally: each pixel is pushed away from the average of its neighbourhood, a patch about two per cent of the picture across. Texture, edges and detail get crisper without the whole picture getting harsher, which is what contrast would do. Pulled below zero it softens, which flatters skin.
Can I change text after I have placed it?
Yes. With Select, double-click the text, or click it with the Text tool, and it opens with its words in it; Enter puts it back, Escape leaves it as it was, and emptying it deletes it. Select it and click a colour or a size to restyle it. Each change is one step for undo.
Will the text and arrows be affected by the filter?
No. The order is fixed: shape first, then colour, then annotations on top, so a black and white filter never turns a red arrow grey. Annotations also stay attached to the part of the photo they were drawn on if you crop or rotate afterwards.
Does it keep the full resolution?
Yes. The preview is drawn from a screen-sized copy for speed, but saving draws everything again from the original, at the full size of the crop unless you set another size under Resize. Shrinking uses a Lanczos filter, which keeps fine detail sharper than the browser's own scaling.
Is the photo's location removed when I save?
Yes. The saved file is encoded from pixels alone, so the camera details and the GPS position a phone writes into a photo are not carried over. The EXIF viewer shows what an original contains.
Which files can it open?
Anything your browser can decode: JPEG, PNG, WebP, GIF and AVIF everywhere, plus HEIC in Safari. For HEIC elsewhere, convert it with HEIC to JPG first. Very large photos work, but a 50 megapixel picture needs a few hundred megabytes of memory to save, which an older phone may not have.
Your data stays on your device
Everything above runs inside your browser as WebAssembly compiled from Rust. Nothing you type is uploaded, logged or stored on a server. You can load this page once, go offline, and it still works.
This page makes no requests at all, to anywhere. That is not a promise in the copy: it is a Content-Security-Policy header your browser enforces, and connect-src on it is none. Open the network tab and watch nothing happen.