Meme Generator
Classic Impact top and bottom text with draggable extra captions. Free, no watermark ever, and your files never leave your device.
Drop an image here or click to choose a file
JPG, PNG or WebP.
Why memes are set in Impact
The convention goes back to the mid 2000s, when the first image macro sites were built on Windows servers and Windows desktops. Impact shipped with Windows 98 and with Internet Explorer for Mac, so it was one of the few genuinely condensed, very heavy typefaces that almost everyone already had installed. Early meme generators defaulted to it, the look stuck, and now Impact in white with a black outline reads as "this is a joke" before anyone has read a word.
It works for a practical reason as well as a historical one. Impact is extremely narrow for its weight, so you can fit a long line across an image without shrinking the type to nothing, and the thick strokes survive being outlined and scaled down to a thumbnail.
This page asks for Impact first and falls back to Arial Black, then Franklin Gothic Bold, then whatever bold sans the device has. That fallback matters: Windows and macOS both ship Impact, but most Android devices, iPhones and Linux installs do not. If you build a meme on a phone it may render in Arial Black instead, which is wider, so your text will fit differently than it would on a desktop. The caption still auto-sizes to fit either way.
How the top and bottom captions size themselves
You do not set a size for the two main captions. The sizing routine starts at one eighth of the image height and tries to lay the text out within 94 per cent of the image width, wrapping on spaces. If any line is still too wide, it drops the size by 2 pixels and tries again, down to a floor of 12 pixels.
On a 1080 by 1080 image that means it starts at 135 pixels. A short caption like NOBODY: stays there. Something longer, say WHEN YOU FIX THE BUG AND FOUR MORE APPEAR, will wrap to two or three lines and settle somewhere around 70 to 90 pixels.
Two consequences worth knowing. Wrapping happens at spaces only, so a single very long unbroken word cannot be wrapped and will just keep shrinking until it fits or hits the 12 pixel floor. And because the starting size is tied to image height, a wide short image such as a 1200 by 400 banner gives you a starting size of only 50 pixels, which may look small. Cropping to a squarer shape with Crop Image gives the captions more room.
Captions are drawn with a 1.08 line height and sit 2 per cent of the image height in from the top and bottom edges.
The outline is doing more work than the fill
White text on its own is unreadable over a bright sky or a pale wall. Every caption here is stroked in black before the white fill is painted over it, with the stroke width set to one twelfth of the font size and round joins so the corners of letters do not sprout spikes.
Because a canvas stroke is centred on the letter outline, only half of that width shows outside the glyph. At a 96 pixel caption the stroke is 8 pixels, so you see about a 4 pixel black halo. That is enough to separate the text from almost any background while staying thin enough not to close up the counters inside letters like a and e.
The floor of 2 pixels means captions stay legible even on a small image, though on anything under about 300 pixels wide the outline starts to dominate. If your source image is small, enlarge it first with Resize Image rather than fighting it here.
Extra text boxes and blank canvases
The two auto-sized captions cover the classic format. For anything else, add text boxes. Each one starts in the centre of the image and can be dragged anywhere with the mouse or a finger. When a box is selected you get a cyan outline around it plus controls for its text, its size and its colour. The cyan selection box is not part of the image and is cleared before the file is written.
A useful pattern: label individual elements in a screenshot, or put speech next to two different people in a photo. Set the colour to black for boxes that sit on a white area, since the black outline stays on regardless and black on black reads as a solid blob.
One limit to plan around: the size slider for extra boxes runs from 12 to 120 pixels. On a 3000 pixel wide photo, 120 pixels of text is small. Resize the image down to something like 1080 wide before you start and the slider range will feel right.
The blank canvas option builds a solid colour rectangle at whatever dimensions you type, defaulting to 600 by 600 white. That is the fast route to a text-only reaction card, a fake announcement, or a plain background for a caption you want to post on its own.
Output, sizing and a note on file size
Downloads are always PNG, at exactly the pixel dimensions of your source image, named meme.png. There is no watermark of any kind.
PNG is lossless, which is great for text edges and less great for file size. A 1080 by 1080 photo meme saved as PNG commonly lands between 1.5 and 2.5 MB, where the same picture as a JPG would be under 300 KB. If you are posting somewhere with an upload limit, run the result through PNG to JPG or Compress Image to KB afterwards. For a text-only meme on a flat background, PNG is already small and you should leave it alone.
Common target sizes: 1080 by 1080 for a square feed post, 1080 by 1920 for a story, 1200 by 675 for a link preview. If you need to blur out a face or a username before posting, Pixelate Image handles that. Everything runs in your browser, so your files never leave your device. There is no account, no upload step and nothing to install.
Questions about the editor
Why is my text not in Impact?
Impact is not installed on most Android phones, iPhones or Linux systems, so the page falls back to Arial Black or another heavy sans. The layout adjusts automatically, but letter widths differ, so the same caption wraps differently across devices.
Can I change the caption font size myself?
Not for the top and bottom captions, which size themselves to fit the width. Add an extra text box instead, since those have a manual size slider from 12 to 120 pixels and can be dragged wherever you want.
Why did my long caption come out tiny?
The fitting routine shrinks text until every line fits inside 94 per cent of the image width, and it can only wrap at spaces. A very long single word, a URL or a hashtag with no spaces cannot be broken, so it shrinks instead. Add spaces or shorten the line.
Does it accept GIFs?
No. PNG, JPG and WebP only, and the output is a still PNG. Animated formats are not supported.
Can I put the classic white bar above and below the image?
Not directly, since captions are drawn over the image itself. To get the older style with text on a white band, create a blank white canvas taller than your photo, then composite manually, or use Add Text to Image for more control over placement.