Browser Image & Drawing Editor
Crop, adjust, annotate and draw on images without uploading them anywhere.
What this editor is for
This is a small image editor for the jobs that interrupt other work: crop a screenshot, circle the part that matters, blank out an address, add a caption, rotate a photo that came out sideways, then save it and get on with the day.
It opens PNG, JPEG and WebP files up to 40 MB, and it exports PNG, JPEG or WebP. PNG is lossless and keeps transparency; JPEG is smaller for photographs and fills transparent areas with the background colour; WebP does both.
The image is decoded and edited inside this page. It is not uploaded, and the tool makes no network request while you work. Closing the tab discards both the image and the undo history, because nothing is stored anywhere.
The tools, and what each one does
Six drawing tools, chosen because they cover annotation rather than because a longer list looks impressive.
- Brush — a freehand stroke with your chosen colour, width and opacity.
- Eraser — removes pixels from the active layer, leaving transparency rather than white.
- Line — a straight line; hold Shift to constrain the angle.
- Rectangle — outlined or filled; hold Shift for a square.
- Ellipse — outlined or filled; hold Shift for a circle.
- Text — a caption in a sans, serif or monospace face at the size you choose.
Changing the picture itself
Crop is a drag on the canvas followed by an explicit Apply, so an accidental drag never destroys anything. Resize takes explicit pixel dimensions. Rotate turns the whole document ninety degrees in either direction, and flip mirrors it horizontally or vertically.
Each of those is one undo step covering the whole document, because their inverse cannot be reconstructed from a few changed pixels. Drawing strokes are one undo step per gesture rather than per pointer sample, so undo moves at the speed you actually worked.
The undo history is bounded by both depth and retained bytes. That is a deliberate limit: an unbounded history of full-size bitmaps is how a browser tab runs out of memory on a phone.
Layers, kept deliberately simple
You can stack up to twelve layers, reorder them, hide them, set per-layer opacity and merge one down into the layer below. Annotations therefore stay separate from the photograph until you decide otherwise.
Layers here are plain raster bitmaps. Blend modes, masks, adjustment layers and groups are not implemented, and that is a scope decision rather than a gap waiting to be filled — each one multiplies the memory a document needs and the number of ways an export can surprise you.
Working on a phone
Drawing uses pointer events, so a finger, a stylus, a trackpad and a mouse all behave the same way and the canvas does not fight the browser’s own scrolling gestures.
Large images are downscaled to a pixel budget when they are opened, and you are told when that happens rather than left wondering why the export is smaller than the original. That budget is what stops a forty-megapixel photograph from crashing the tab.
What it will not do
This is not a replacement for a full image editor, and the limits are worth knowing before you start.
- No RAW, HEIC, TIFF, GIF or SVG input; PNG, JPEG and WebP only.
- No blend modes, masks, adjustment layers or layer groups.
- No content-aware fill, healing brush, clone stamp or background removal.
- No vector shapes: everything is committed to pixels when you release the pointer.
- Nothing is saved between visits, so export before you close the tab.