Meme Generator

The Impact caption done properly, with an outline that grows outward instead of eating your letters.

% of height

Drawn outward only, so it never eats into the letters.

The convention. Turn it off to keep your own capitalisation.

Drop an image here

or paste a screenshot with Ctrl+V. Nothing is uploaded.

Everything here runs on your device. Nothing you enter is uploaded or stored.

There is exactly one thing that separates a meme caption that looks right from one that looks slightly wrong, and almost every browser-based generator gets it wrong in the same way.

How to use it

Drop in any image, type your top and bottom captions, and download. Text is uppercased and wrapped for you. If you want the other idiom — black text on a white band — switch the layout to Above or Below.

The outline problem

When you ask a canvas to stroke text, the stroke is drawn centred on the outline of the glyph. Half of its thickness goes outward, and half goes inward, over the letter. At the light weights used for ordinary graphics nobody notices. At the weight a meme needs, roughly a sixteenth of the font size, the inner half is thick enough to eat the white fill: the crossbar of an “e” narrows, the waist of an “s” closes, and the whole caption develops a slightly melted look.

Image editors do not do this. Their outline effect grows outward from the shape and leaves the fill untouched.

The fix takes one extra draw call. Stroke at double the intended width, then fill on top. The fill covers the inner half of the stroke exactly, and what remains outside the glyph is the weight you asked for. That is the whole trick, and it is tested here rather than eyeballed — the test asserts the stroke happens before the fill, at 2× width, because getting that order backwards is a silent regression that only shows up in the letterforms.

Wrapping that measures instead of counting

Meme text is set in a very condensed face, which makes character-count wrapping useless. “MMMMM” and “IIIII” are five characters each and nearly five times apart in width. Wrapping here measures candidate lines against the actual canvas metrics for the actual font size.

If a caption still will not fit, the size steps down until it does. Each caption is given at most 40% of the image height, so a four-line top caption cannot crash into the bottom one. A single word longer than the whole line is broken mid-word rather than allowed to run off the edge, on the grounds that an ugly break beats a caption that leaves the image.

The font is not guaranteed

Impact ships with Windows and macOS. It does not ship with Android, iOS or most Linux distributions. A generator that just names Impact and hopes silently renders in whatever the browser substitutes, which is usually a normal-width sans that looks nothing like a meme.

The stack here is explicit: Impact, then Haettenschweiler, then Arial Narrow Bold, then Anton, then a generic. Width is the property that carries the look, so every fallback is a condensed face. The tool also waits for the font to resolve before its first paint — otherwise the preview appears in the fallback and visibly reflows a moment later — and tells you when Impact itself was not available.

Two layouts

Classic puts the captions over the image, white with the black outline. Above and Below grow the canvas and put your text as black on white, with no outline, because with nothing behind it an outline serves no purpose. The band is sized as a share of the image width rather than its height, so it looks the same on a wide screenshot and a tall photo.

What it does not do

No watermark. No template gallery. No upload, no account, and no draggable free-position text boxes — captions go top and bottom, which is the format. For arbitrary text placement, the watermark tool is the better fit.

Which tool for which job

You want toUse
A classic top/bottom meme captionThis tool
Text or a logo placed anywhere on an imageImage Watermark
A fake post screenshot for a mockupFake Tweet Generator
To crop before captioningImage Cropper
A specific output sizeImage Resizer

Your image is decoded, captioned and encoded on your own device with the browser’s File and Canvas APIs. Nothing is uploaded, and closing the tab leaves no copy behind.

Questions

Why do meme captions look wrong in most online generators?

Because of how canvas draws an outline. The stroke is centred on the letter's edge, so half its thickness falls inside the glyph. At the heavy weight a meme needs, that inner half eats into the white fill and closes up thin strokes — the crossbar of an "e", the waist of an "s" — which is why captions elsewhere look slightly melted. This tool strokes at double width first and fills on top, so only the outer half survives. That is what Photoshop's outline effect does.

What font do memes use?

Impact, white, with a heavy black outline. It has been the convention since the mid-2000s and nothing else reads the same way, because what makes it work is the extreme width of the letters rather than any one shape. Impact ships with Windows and macOS but not with most phones or Linux, so this tool names an explicit stack of condensed fallbacks and tells you when it has had to use one.

What happens if my caption is too long?

It wraps, and if it still does not fit it shrinks. Wrapping is measured against the real font metrics rather than counting characters, which matters enormously in a condensed face — "MMMMM" and "IIIII" have the same character count and nowhere near the same width. Each caption gets its own share of the height, so a long top line can never collide with the bottom one.

Is there a watermark or a template list?

No watermark, ever, at any size, and no template list. Bring any image you like. Most generators lock you into a gallery of the same forty images and stamp a URL into the corner of whatever you export; both exist to promote the site rather than to help you, so neither is here.

Can I put the text on a white band instead of over the image?

Yes — that is the other meme idiom, and it is a layout option. Choosing Above or Below grows the canvas and puts your caption as black text on white, with no outline, because there is no image behind it to separate from. The band height is a share of the image width, so it looks consistent whether your image is wide or tall.

Last updated