Tool · photo overlay

Add brat text to a photo

Pick an image, drop a line of lowercase text onto it, and export. The photo is read by your browser and never uploaded anywhere — there is no server step in this page.

  • local processing
  • scrim + band
  • auto-fit type
  • PNG export

Photo cover

your image, your line, your device

Drop a photo here — or click to choose. It is read by your browser and never uploaded.

no image loaded yet
saved

What this does, and what it deliberately does not

It puts one line of text on one photo and gives you back a PNG. That is the whole product. It does not detect faces, does not offer layers, does not crop to a subject, and does not do colour grading — all of which are different products that already exist and do them better. What it does have is the typographic treatment this aesthetic is built on, applied to something of yours.

The three treatments

Darken the whole image is the safest. A uniform scrim drops the photo’s contrast enough that white type reads cleanly anywhere on the frame, and it keeps the image visible as background rather than as subject. Start around 35 per cent and push it up until the words stop competing.

Solid band behind the text keeps the photo bright and puts a dark strip only where the words sit. It reads more designed and less filtered, at the cost of hiding a band of your image. Use it when the photo has something in the middle you want to keep visible.

Field top and bottom frames the image with the acid green instead of darkening it — the text sits on the colour, not on the photo, so legibility is guaranteed and the image becomes the content. This is the option that looks most like a poster and least like a photo with text on it.

Picking a photo the type can survive

Three properties decide whether text will read over an image: busy-ness, tonal range and edge density. A photo with large flat areas — sky, a wall, water, a dark room — gives the type somewhere to sit. One with high edge density everywhere (a crowd, a forest, a shelf of product) fights the letters no matter how much you darken it, because the contrast is local and the text needs global.

The other trick is placement: put the line where the photo is quietest. If the quiet area is not in the middle, the band treatment is usually better than the scrim, because you can place it and leave the interesting part of the frame untouched.

Legibility, in one rule

White text on a darkened photo is the only combination that works reliably, and the darkening has to be enough. A 15 per cent scrim looks tasteful in a bright room and disappears outdoors. If you cannot read the line at arm’s length on your own phone, the image is not the problem — the scrim is.

Privacy, stated plainly

The file is read by your browser through a local reader and drawn to a canvas in the same page. It is not sent anywhere, not stored, not logged, and not recoverable by anyone — including this site. That is not a policy promise, it is how the code is structured: there is no request in this page that could carry your image.

Two honest limits. Photos taken with a phone often carry rotation metadata; the browser may or may not apply it, so if your image arrives sideways, rotate it before uploading. And very large files (20 megapixel phone shots) are resized for display, which is fine for a social export but means this is not the tool for print work.

FAQ

Can I place the text somewhere other than the centre?

Not yet — the band treatment is the current way to move the type off the middle of the frame. Centre placement is deliberate: it is what the format does.

Why is my text lowercase when I typed capitals?

Because the register is lowercase. There is a case switch on the page for the rare case where the capitals matter — an acronym, a proper name you refuse to lose.

Does the export keep the original resolution?

No. It exports at the canvas size you chose — up to 1080 or 1200 pixels — which is the size social surfaces actually display at.

Can I use this for a screenshot?

Yes, though the redactor is the better tool when the goal is hiding something rather than labelling it.

Every tool on this page runs inside your browser. Nothing you type is sent to a server, stored in an account, or logged — there is no upload step in the code. See the privacy policy for the one analytics service used and what it does not collect.