Caption
Arial Bold · 72 px · black outline 6 px · centred · bottom safe margin.
No signup. No watermark. Your image pixels stay in your browser. Add multiple movable text layers, then download at the source image’s full resolution or a size you choose.
Start here. Editing controls unlock after the image is decoded.
Tested inputs: JPEG, PNG, WebP, and GIF · Maximum 50 MB, 100 megapixels, and 16,384 px on either side · Animated GIFs are flattened.
Use the ⠿ handle to drag a layer or enter X and Y values. Arrow keys nudge by 1 px; hold Shift for 5 px. Ctrl/Cmd + D duplicates the selected layer.
Choose a light text colour over dark areas and dark text over light areas. On a busy or changing background, an outline is usually less intrusive than a box; begin with an outline around 5–10% of the font size. Use a background box when the photo has no consistently quiet area or when small text must remain legible.
Keep important words inside a safe margin so social apps do not crop them. As a starting point, reserve 5% of the shorter image edge on every side. Font size should rise with image dimensions: a 48 px caption on a 1200 px-wide image is roughly equivalent to 96 px on a 2400 px-wide image. Always verify readability at the final display size.
| Use case | Recommended start | Placement | Export |
|---|---|---|---|
| Meme | Impact, uppercase, white, 8% outline | Top centre, 5% safe margin | PNG |
| Photo label | Arial, 4% width, 75% dark box | Bottom left | JPEG 90–94% |
| Watermark | Arial, 35–55% text opacity, no box | Bottom right or diagonal centre | Match source format |
| Product price | Arial Bold, dark red, white rounded box | Top right | WebP 88–94% |
| Social headline | Arial Bold, 7% width, high contrast box | Middle safe area | PNG or WebP |
Arial Bold · 72 px · black outline 6 px · centred · bottom safe margin.
Impact · 80 px · white · black outline 7 px · uppercase · top centre.
Arial · 42 px · white at 50% opacity · no outline or box · centre rotation −18°.
Arial Bold · 64 px · dark red · white 95% rounded box · top right.
Tested inputs are JPEG, PNG, WebP, and GIF. Animated GIFs are flattened to the browser-decoded frame displayed in the editor. HEIC and TIFF are not supported. PNG is best for sharp text and transparency; JPEG is best for smaller photographic files and always uses a solid background; WebP balances size, quality, and optional transparency in supporting browsers.
Original export uses the source image’s exact width and height, independent of screen pixel density. A 2× or custom export enlarges both the photo and text deliberately and may use substantial browser memory.
v2.0 · verified 19 July 2026. Added upload-first controls, visible text editing, presets, mobile panels, transparent and multi-format export, predictable resolution choices, accessible states, format validation, clipboard paste, examples, and visible FAQs.
No. Your image pixels are decoded and edited locally in your browser. The page may download font files, but it does not send your image to Starlight Tools.
The tool is free to use, requires no account, and does not add a watermark.
JPEG, PNG, WebP, and GIF are tested. Browser support determines whether a particular file can be decoded; HEIC and TIFF are not supported here.
You can download PNG, JPEG, or WebP. PNG and WebP can preserve transparency; JPEG always uses a solid background.
Yes. Original is the default export size and uses the source image’s exact pixel dimensions. You can deliberately choose 2x or a custom size.
Yes. Add, select, duplicate, reorder, hide, lock, and delete multiple text layers independently.
Yes. On small screens, use the sticky action bar to open Text, Style, Position, Layers, and Export panels. Every primary control has a touch target of at least 44 pixels.
Yes. You can load a local TTF, OTF, WOFF, or WOFF2 font for the current browser session. The font file is not uploaded.
An animated GIF is flattened to the browser-decoded frame shown in the editor. Unsupported or damaged files are rejected with an error before editing.