What does the Add Text to Image tool do?
Add Text to Image puts words on a picture, in the browser tab you already have open. Drop a photo in and one text block lands in the middle, already selected, with the field focused — so your first keystroke is your caption rather than a fight with a placeholder. Drag the words where you want them. Pick a font, a size, a colour, a style. Hit Download.
Here it is in real numbers. Take a 1,200 × 800 photo of a market stall and type SOLD OUT in yellow. At the default Size of 8, the letters draw 96 pixels tall with an outline stroke of about 11.5 pixels around them — enough to read against the crate behind it. Put the same caption on a 4,032-pixel phone photo at the same Size 8 and the letters draw at 323 pixels, because size is a share of the picture, not a point value. Your IMG_4021.jpg downloads as IMG_4021-text.jpg, still 4,032 × 3,024. The line under the canvas tells you what you're about to get — 1920 × 1080 PNG · 412 KB — before you click anything.
One image, up to ten separate text blocks, six font families, any hex colour, four legibility styles, 500 characters per block. PNG, JPG, WebP and GIF go in, up to 50 MB. Nothing uploads.
Why the picture comes back the size you brought it in
The ways to add text to a photo online split into two shapes, and both have the same hole in the middle. On one side are the big design platforms: you don't caption a photo, you start a project. Sign in, pick a canvas size, find the text tool, then meet the export gate — an email for the download, or a logo stamped in the corner with a monthly fee to take it off. A thirty-second job arrives wearing a subscription. On the other side are the quick accountless utility pages: fast, but your photo goes up to a stranger's server, comes back through a form, and you get one font and three fixed positions.
The shared bug is more specific than either business model. Most of these tools produce the download by screenshotting their own editor. The preview on your screen has been scaled down to fit the browser window — maybe 600 pixels wide — and the export rasterises that preview, often at twice its displayed size. A 4,000 × 3,000 photo comes back around 1,200 × 900: roughly a tenth of the pixels you started with, handed over with no warning. You don't notice until you try to print it, or crop into it.
Add Text to Image keeps two canvases instead of one. The preview is fitted into a 4,096-pixel box so your browser can draw it smoothly — an 8,000 × 6,000 scan previews at 4,096 × 3,072, a scale factor of 0.512. The download is rendered separately, offscreen, at the source dimensions, with the text drawn straight onto the full-resolution original: that scan comes back 8,000 × 6,000. Positions are stored as a fraction of the source rather than as preview pixels, so where you dragged the words on the preview is exactly where they land on the full-size file.
Check the label under the canvas before you download — it prints the real output dimensions, format and file size. If a tool won't tell you what size you're getting, that's usually because it isn't the size you gave it.
How the text is sized, wrapped and placed
Size is a percentage of the image's width, from 1 to 25, and 8 by default. A point size would be useless here: 24-point type is a headline on a thumbnail and an invisible speck on a camera file, so an absolute size control makes you re-find the right number for every picture. A percentage transfers.
| Size setting | 600 px wide | 1,200 px wide | 1,920 px wide | 4,032 px wide |
|---|---|---|---|---|
| 4 | 24 px | 48 px | 77 px | 161 px |
| 8 (default) | 48 px | 96 px | 154 px | 323 px |
| 12 | 72 px | 144 px | 230 px | 484 px |
| 20 | 120 px | 240 px | 384 px | 806 px |
Line spacing is fixed at 1.2× the font size, so a two-line caption at 96 pixels occupies 115 pixels per line. Text wraps at the edge of the image, less a 2% margin on each side — on a 1,200-pixel photo that leaves 1,152 pixels of usable width, and the margin exists so an outline stroke or a box edge isn't clipped by the very border it just wrapped at. Your own line breaks are honoured first and blank lines are kept, so a two-stanza quote keeps its gap, and a single unbroken 500-character word breaks mid-word rather than running off the frame.
Dragging is the only positioning control. No coordinate boxes, no alignment menu — you already know where you want the words, and pointing at the spot beats typing two numbers. The clamp applies to the whole drawn block, text plus whatever the style paints around it, so a caption shoved into the corner stays fully on the picture instead of hanging off the edge.
Plain, Outline, Shadow and Box: picking a style that survives the background
White text vanishes over a white shirt. Black text vanishes in a shadow. You usually can't tell which is about to happen until the words are already on the photo, which is why legibility gets its own control here rather than being left to you and a colour picker.
| Style | What it draws | Size at 96 px type | When it wins |
|---|---|---|---|
| Plain | The fill, nothing else | — | Flat, predictable backgrounds — a studio white, an empty sky |
| Outline (default) | A contrasting stroke around every letter, under the fill | 11.5 px stroke | Any background you haven't seen yet; it's what subtitles use |
| Shadow | A soft dark copy offset behind the text | 24 px blur, 7.7 px offset | Light, calm photos where an outline would look heavy |
| Box | A solid pill behind the words | 24 px padding | Prices, labels, anything that should read as a label |
The second colour — the stroke, the shadow, the pill — isn't a setting you have to think about. Add Text to Image computes it from the fill you picked using sRGB relative luminance: anything brighter than the midpoint gets a near-black companion, anything darker gets a near-white one. Yellow text at #FFD400 lands at a luminance of about 0.68, so it gets a near-black outline instead of a yellow-on-white one that would defeat the control. Outline is the default because it's the only one of the four that carries its own edge into a background nobody has looked at yet.
When you'll reach for it
A price on a product shot. You photograph the thing, then you need the name across the top, the price in the corner and a line of terms at the bottom — three blocks, three sizes, three colours, one download. A meme-shaped tool gives you a top line and a bottom line in one fixed typeface, which isn't the same job.
A caption for a post. A quote over a background photo, a date on an event picture, a name on a team shot. The words go exactly where you drag them, which matters when the left third of the frame is the only place text won't cover someone's face.
Labelling a screenshot. Mark up a bug report, put a step number on a how-to image, write before and after on two crops. Screenshots are usually PNG, and a PNG comes back a PNG at the same pixel count, so the text stays as crisp as the interface underneath it. Printing is the same story: add text to a picture straight off a camera and it's still sharp at A4.
None of that is a professional-only list. It works the same whether you're a freelancer running your own shopfront, a student captioning a figure for a paper, a small seller pricing up twenty product photos, or someone at a very large company doing a side project on a Sunday.
What can go wrong, and what to do about it
If the text isn't showing up, here's what to try first. An empty block draws nothing at all — no placeholder, no outline — so if you cleared the field, type something and it reappears. If the words are there but invisible, you've probably matched the colour to the background: switch Style to Box, which always reads, and then work backwards. And if the caption looks microscopic, check the Size slider hasn't been dragged to 1, which on a 600-pixel image is a 6-pixel letter.
A few files get turned away on purpose, with somewhere to go next:
- iPhone photos. No browser can decode HEIC, so Add Text to Image reads the file header rather than trusting the extension — a HEIC renamed to
.jpgis caught too — and points you at HEIC to JPG. Convert, come back, carry on. - Anything over 50 MB. Checked before the file is decoded, so a 68.2 MB photo costs nothing but a glance at its size, and the message sends you to the Image Compressor.
- Anything over 12,000 pixels on a side. That's past what a browser tab can hold steadily. Make a smaller copy with the Image Resizer first.
- Animated GIFs. Accepted, but only the first frame — you'll see a note saying so, and
clip.gifdownloads asclip-text.png. - PDFs. Not an image. Watermark PDF stamps text across the pages without converting anything first.
One format detail worth knowing: a PNG with a transparent background stays transparent. The image is drawn onto a cleared canvas rather than composited over a white rectangle, so a cut-out logo doesn't come back sitting on a white square. The one source that does get a background filled is a JPEG, because the format cannot store transparency and the alternative is black corners. To change formats, the Image Format Converter does that as its own job.
Related image tools
Captioning is usually one step in a short chain. If the photo needs trimming first, the Image Cropper sets the frame before you place any words — crop, then add text to the image, so the caption doesn't end up half outside the final shot. If it's going somewhere with a file-size limit, run the finished picture through the Image Compressor afterwards rather than before, so the text is drawn on the sharp original. To hide a face or a number plate in the same photo, Blur Image does that locally too.
For the classic top-line / bottom-line joke in Impact, the Meme Generator is the right page — its constraint is the point of it. Come here when you want any font, any colour, anywhere. For a headshot rather than a caption, the Profile Picture Maker does the crop-and-frame version.
All of these run in your browser, none of them ask for an account, and none of them put a watermark on the output. Microapp gives 10% of every dollar it earns to charity, off the top, audited quarterly — that's the business model this page is attached to, instead of the one where the download costs an email address.
Frequently asked questions
Does it work on a phone?
Yes, including the dragging. The canvas takes touch as well as mouse and trackpad input, so you position a caption with your finger the same way you'd do it with a cursor. A picture loads three ways: the file picker, a drag-and-drop, or a paste straight from the clipboard — the fast path for a screenshot you just took. The one thing a phone can't help with is HEIC: convert first, or switch Settings → Camera → Formats → Most Compatible so it shoots JPG from then on.
Which fonts can I use?
Six families: Sans, Display, Serif, Mono, Condensed and Handwriting. That's a short list on purpose — every one of them is either a system stack that's guaranteed to be there or a webfont this page already loads. The font is waited for before anything is drawn, because a canvas that paints before the typeface arrives silently uses a fallback, and then the preview and the download disagree about what your caption looks like. You can't upload your own font. Each of the ten blocks picks its own family, so a name in Display over a price in Mono is fine.
Why is my JPG a different file size afterwards?
Because a JPEG is re-compressed every time it's written, so adding a caption encodes the whole picture again — at high quality, but not byte-for-byte identically. The dimensions are untouched; only the file size moves, usually by a little, in either direction. PNG doesn't have this problem: it's lossless, so a screenshot with text added is pixel-exact except where the letters are.
How much text can one picture hold?
Ten blocks, 500 characters each. Long text wraps at the image edge on word boundaries rather than running off it, and your own line breaks are kept, so a short paragraph behaves the way you'd expect. Ten is the cap because past that you're not captioning a photo, you're laying out a poster, and one-selected-block controls would stop being the fast way to do it.
Can I edit the text after I download?
No. The download is a flattened picture: the letters are pixels in the image, not a layer you can reopen. There's no project file, because there's no project — nothing is saved anywhere, including on your own machine, beyond the file you download. Keep the original photo if you might want a different caption later; reloading it and retyping takes about fifteen seconds, which is cheaper than the storage and the account a layer system would need.
What does it cost, and what's the catch?
Nothing, and there isn't one in the usual shape. No account, no watermark, no resolution cap, no limit on how many pictures you run through it. That's worth saying plainly because the normal arrangement here is an editor that lets you do all the work and then asks for an email at the export step — or hands over the file with a logo in the corner and offers to remove it for a monthly fee. Putting words on a photo is a thirty-second job. It shouldn't arrive attached to a contract.
What can't it do?
Quite a lot, on purpose. No templates, no stickers, no arrows or shapes, no filters, no layers panel, no background removal, no batch processing. Rotating a block, curved text and letter-spacing aren't there either — those are real gaps rather than choices, and they're next on the list. What Add Text to Image does do is put your words where you put them, in the font and colour you picked, on a file that comes back the size it went in. If you need a design suite, you need a design suite. This is the page for when you don't.