Add Text to Image Online Free

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.

1. Choose an image

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.

2. Add and position text

No image selected

Choose an image above, or drop one here.

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.

Advertisement

Local image processingYour image pixels remain in this browser. Google-hosted font files may still be requested.
No account or watermarkNothing is added to downloads. Editor data disappears when you reload or close the tab.
Tested formatsJPEG, PNG, WebP, GIF in; PNG, JPEG, WebP out. GIF animation is flattened.
Requirements & limitsModern JavaScript browser with Canvas. 50 MB, 100 MP, 16,384 px/side. Verified 19 July 2026.

How to add text to an image

  1. Choose an image. Upload, drop, paste, or use the sample. JPEG, PNG, WebP, and GIF are tested.
  2. Add a text layer. Type in the visible Text field; it stays synchronized with the selected movable layer.
  3. Style and position it. Start from a preset, then adjust typography, contrast, coordinates, alignment, or safe margins.
  4. Check the final size. Keep Original for the exact source dimensions, or deliberately choose 2× or custom dimensions.
  5. Download the image. Choose PNG, JPEG, or WebP and review the displayed pixel dimensions first.

How to make text readable

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.

Best settings by use case

Use caseRecommended startPlacementExport
MemeImpact, uppercase, white, 8% outlineTop centre, 5% safe marginPNG
Photo labelArial, 4% width, 75% dark boxBottom leftJPEG 90–94%
WatermarkArial, 35–55% text opacity, no boxBottom right or diagonal centreMatch source format
Product priceArial Bold, dark red, white rounded boxTop rightWebP 88–94%
Social headlineArial Bold, 7% width, high contrast boxMiddle safe areaPNG or WebP

Before-and-after examples

Before
AfterWEEKEND MODE

Caption

Arial Bold · 72 px · black outline 6 px · centred · bottom safe margin.

Before
AfterWHEN THE WIFI RETURNS

Meme

Impact · 80 px · white · black outline 7 px · uppercase · top centre.

Before
After© NORTH STUDIO

Watermark

Arial · 42 px · white at 50% opacity · no outline or box · centre rotation −18°.

Before
After£24.99

Product label

Arial Bold · 64 px · dark red · white 95% rounded box · top right.

Supported formats and exports

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.

Troubleshooting

  • The image will not open: confirm it is a JPEG, PNG, WebP, or GIF under the listed limits. A matching file extension does not guarantee valid image data.
  • Text looks different after export: wait for a custom or web font to finish loading, and avoid closing the tab before download completes.
  • Text is clipped: enlarge the text layer box or reduce font size, then keep it inside the safe margin.
  • Download fails: reduce custom dimensions; very large canvases can exceed device memory or browser canvas limits.
Tool release details

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.

Frequently asked questions

Are my images uploaded?

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.

Is the tool free, and does it add a watermark?

The tool is free to use, requires no account, and does not add a watermark.

Which input formats are supported?

JPEG, PNG, WebP, and GIF are tested. Browser support determines whether a particular file can be decoded; HEIC and TIFF are not supported here.

Which output formats are available?

You can download PNG, JPEG, or WebP. PNG and WebP can preserve transparency; JPEG always uses a solid background.

Will the download keep the original resolution?

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.

Can I add more than one text layer?

Yes. Add, select, duplicate, reorder, hide, lock, and delete multiple text layers independently.

Does the editor work on mobile?

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.

Can I use a custom font?

Yes. You can load a local TTF, OTF, WOFF, or WOFF2 font for the current browser session. The font file is not uploaded.

What happens to animated GIFs or unsupported files?

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.

Explore more tools