← Image Tools

Add Text to an Image for Quotes, Labels, and Memes

No image selectedUpload an image to unlock text overlay settings

How do you put a caption or quote on a photo?

Add a caption, label or watermark to an image with editable text layers. Move and style the text in the preview, using contrast and spacing that keep it readable over the photo. Check the result at the size where it will be displayed, especially on mobile. The exported text becomes part of the image rather than a separate editable document layer.

Cost: Free to use. File size and usage limits apply.

How to add text to an image

  1. Upload one image

    Click Upload or drop an image of up to 200 MB onto the preview. Images you uploaded or edited in other tools are listed under Files.

  2. Replace the sample text

    A first layer reading Your text appears in the middle: white, 64 px, with a 2 px black outline on a black box at 35% opacity. Type your own words into the text box of the Text layers card and press Enter for a new line.

  3. Move it into place

    Drag the text on the preview, or use the X and Y sliders for exact positions.

  4. Style the layer

    Pick a font and size, set the Text, Stroke and BG colours, and decide whether the words sit on a box or directly on the photo.

  5. Add more layers if needed

    Add creates another layer in the centre, on top of the others. Click a layer's chip to edit it, or use Remove layer.

  6. Render and download

    Click Add text, compare with the before/after slider, then click Download. Changing any setting takes you back to the editor with all layers intact. The result also appears under Files.

Text layer settings explained

Every layer has its own settings. The preview uses the same font files and layout rules as the server, so position, size and line breaks match the download.

Text box
Holds the words of the selected layer. Text does not wrap automatically: a line only breaks where you press Enter. Empty lines in between are kept; a layer without text is skipped.
Horizontal / Vertical
Vertical stacks every character in one column. Line breaks do not start a new column and each space becomes an empty row, so it suits a single short word.
left / center / right
Aligns the lines inside the text box and decides which point of the box sits at the X position: its left edge, middle or right edge.
Font size
8–220 px, default 64 px. The size is measured in pixels of the original image, not of the preview, so the same number looks smaller on a high-resolution photo.
Font
Default Inter. Inter and Arial are plain sans-serif faces, Georgia is a serif that suits quotes, Courier New is monospaced and Impact is a condensed bold face for meme captions. There is no separate bold or italic switch.
Text, Stroke and BG colours
Swatches for the letters, their outline and the box behind them. The text itself is always fully opaque; only the box has an opacity setting.
Stroke
Outline width from 0 to 16 px, default 2 px. The outline is centred on the edge of each letter, so on small text a thick outline closes up gaps inside letters such as e and a.
Transparent background and BG opacity
The box is on by default at 35%; BG opacity runs from 0 to 100%. Switch on Transparent background to drop the box and rely on the outline for contrast. The box adds at least 10 px of padding on every side.
X and Y
Position in percent of the image width and height, default 50%. Y marks the vertical centre of the text box. A box that fits is kept inside the image: 0% and 100% place it against the edge. A box wider or taller than the image is centred and clipped; shorten its lines or reduce the font size.
Rotation
−180° to 180°, default 0°. The layer turns around its own centre, and the rotated box is also kept inside the image.

Choosing a font size that stays readable

Because Font size counts pixels of the original file, the right value depends on the resolution. On a 1080 px wide image, the default 64 px is about 6% of the width and reads as a clear caption. On a 4032 px wide phone photo, the same 64 px is only about 1.6% of the width and looks small when the photo is viewed full-screen.

Even the maximum of 220 px on a 4032 px photo covers roughly the same share of the width as 64 px on a 1080 px image. If the photo will only be shown at a smaller size anyway, reduce it first with Resize Image; that also leaves room for larger headline text.

Lines are spaced at 1.2 times the font size, so a three-line quote at 64 px needs about 250 px of height including the box padding. Break long quotes by hand; as a rule of thumb, lines of 25–35 characters stay easy to read on a phone. If the text box ends up wider than the image, it is centred and cut off on both sides.

Starting values for common jobs

These values assume an image about 1080 px wide. For larger files, scale font size and stroke in proportion.

Quote on a photo

Georgia, center, 56–64 px, white text, Stroke at 0 px and BG opacity at 40–50% so the words stay readable over a busy background. Put the author's name in a second layer at 32–36 px, aligned right, below the quote.

Meme caption

Impact, 80–96 px, white text with a 4–6 px black Stroke and Transparent background switched on. Use two layers: one with Y around 8% for the top line and one around 92% for the bottom line.

Label or photo credit

Arial or Inter at 24–32 px, aligned right, with X at 98%, Y at 96% and the box at 25–35%. For a semi-transparent logo instead of text, use Overlay Image, which has its own opacity control.

What happens to format and quality

The result keeps the format of your upload. JPEG is saved again using the estimated quality of the original, but file size and fine detail can change. PNG uses lossless encoding and keeps transparency. Still WebP and AVIF are re-encoded lossily at quality 92. HEIC and HEIF become PNG, with file size dependent on the image. The photo is not resized or cropped. To change the format afterwards, use Convert Image.

Animated GIF and WebP files stay animated, and the text is drawn on every frame. Frame delays and colours are unchanged.

Formats and limits

Input formats
JPG, PNG, WebP, GIF, BMP, ICO, TIFF, TGA, AVIF, HEIC, HEIF
Output formats
Same as the input; HEIC and HEIF are saved as PNG
Maximum file size
200 MB per image
Files per job
1 image, with as many text layers as you add
Processing
On our servers with ImageMagick. A job can run for up to 15 minutes. No AI or external service is involved.
Watermark
None
Storage
Uploads and results are deleted automatically after 48 hours for guests and after 30 days for free accounts. Paid plans can keep files longer.

Frequently asked questions

Can I use emoji in my text?

The text is drawn with the five fonts in the Font list. They cover Latin letters with accents, Cyrillic and Greek, but not emoji or Chinese, Japanese and Korean characters. To place a colour emoji or a logo, save it as a PNG and add it with Overlay Image.

How do I add a quote with proper quotation marks?

Type or paste the quote with its punctuation: curly quotation marks, apostrophes, dashes and the euro sign render in every font. Press Enter to split it into short lines, then add the author's name as a second layer so you can size and place it separately.

Can I edit or remove the text after downloading?

No. The text becomes part of the pixels, and the layers are not saved with the file. Your original stays under Files in the same browser until the storage period ends, so you can open it again and rebuild the layers.

Is location data removed from my photo?

No. In JPEG files, EXIF data such as camera model, capture date and GPS position is carried over to the result. To remove it before sharing, run the result through Compress Image with Strip metadata switched on.