Meme Generator
Caption any image or GIF with unlimited draggable text boxes, 8 fonts and 19 blank templates — no watermark, saved as PNG, JPG or an animated GIF.
🔒 Made entirely in your browser — no upload, no account, no watermark.
Drop an image or GIF here or click to choose
Add a picture on top
Drag a caption on the picture to move it, or use the arrow keys.
Saved at 600 × 498px
Saved at 600 × 498pxEvery caption is its own box
Drop in a picture or an animated GIF — or start from one of the blank templates — and type your captions. Each caption is its own box: drag it on the canvas or nudge it with the arrow keys (hold Shift to move further), add as many as the meme needs, and remove the ones you do not. A picture opens with the familiar pair, one across the top and one along the bottom, and every caption starts in the classic look — uppercase Impact, white fill, thick black outline. Long captions wrap to the width of their own box, and if one ends up drawn outside the picture the page says which one instead of quietly cropping it. Everything happens in your browser, so your image is never uploaded to a server.
Nineteen blank templates
No picture to hand? The library holds 19 blank grounds: eight solid colours and four
gradients at 600 × 498, four panel layouts (two-panel, three-panel, a 2 × 2 grid and side-by-side), and
the three shapes people post to — 1080 × 1080 square, 1080 × 1920 story and
1920 × 1080 widescreen. Search them by name, by keyword or by pixel size, so typing
1080 narrows the list to the square and the story. A panel template opens with one caption
already centred in each panel. Nothing is downloaded for a template — each one is a handful of numbers
drawn at export time, so a story template really is exported at 1080 × 1920. They are blank canvases and
layouts, not the famous photographs: those are hosted under licence elsewhere, so bring your own picture
for one of those.
Styling each caption
Select a caption and it gets its own controls: typeface — Impact, Arial, Verdana, Courier New, Comic Sans MS, Times New Roman, Georgia, and a Hangul gothic stack, because Impact has no Hangul glyphs at all — plus size, horizontal and vertical alignment, bold, italic, uppercase, text colour, outline colour, outline width, a drop shadow drawn in the outline colour, opacity, and the width and height of the caption's own box. The typefaces are font stacks, not downloads: nothing is fetched, so a caption appears the moment it is typed and the tool still works offline. Positions and sizes are kept as fractions of the finished picture, so what you drag on the preview lands in exactly the same place in the file you save, whatever size it is exported at. Undo and Redo step back and forward through every edit — a caption typed, a slider dragged, a picture turned, cropped or given a picture on top — and Ctrl+Z and Ctrl+Shift+Z do the same on the meme itself; typing into one caption is one step, not one per letter.
The picture, and text outside it
A loaded picture can be rotated a quarter turn either way, flipped across or down, and turned greyscale, sepia or blurred, with one button to put all of it back. It can be cropped too: type the part to keep in the picture's own pixels, pick one of the fixed shapes, or turn on Crop on the picture and drag the corners and edges of the box. Under Pictures on top a second picture — a logo, a transparent sticker, a reaction face — is laid over the meme, dragged into place, sized and faded, and it stays where it is when the picture under it is changed. If you would rather the words sat off the picture instead of over it, the caption bar adds a band above it, below it or both, with a height from 5% to 60% and a colour of your choosing. Because captions are positioned against the whole canvas, a caption at the top drops into the bar as soon as the bar exists.
PNG, JPG, or a GIF that still moves
Save as PNG, JPG or GIF. An animated GIF is decoded in the page — this tool carries its own GIF reader, down to the LZW bitstream, interlacing and all four disposal methods — every frame is captioned, and it is written back with each frame's own delay and its loop flag, so the result still animates instead of collapsing to a still. Use the original image resolution is on by default, so a photo saves at its own pixel size; turn it off to export 600px wide. Past about 16 million pixels a canvas comes back blank on iOS Safari, so the export is scaled down and the page says so rather than handing you an empty file.
Why make memes locally
Many online meme makers upload your image to their servers, stamp on a watermark, or gate the download behind a sign-up. Here the whole thing runs on your device: no watermark, no account, no upload, and it keeps working offline. The dashed box around the selected caption is a handle for you and is never drawn on what you download. Pictures up to 40 MB are taken by drop, by the file picker, or by pasting one straight from the clipboard.
Frequently asked questions
Is my image uploaded anywhere?
No. The image you pick and the finished meme are drawn entirely in your browser on a canvas. Nothing is sent to a server, so it works offline and stays private.
Is there a watermark?
No. The file you download is exactly what you see on the canvas — no watermark and no sign-up required.
What font does it use?
The classic meme look uses Impact (falling back to a condensed bold sans-serif if Impact is not installed), rendered in uppercase with a black outline and white fill.
Can I make a meme without a photo?
Yes. There are 19 built-in backgrounds — 11 solid colours, 4 gradients and 4 panel layouts — and you can add as many captions as you like on any of them.
Can I caption an animated GIF and keep it moving?
Yes. Drop the GIF in, choose GIF as the format, and every frame is captioned — the animation is decoded in the page itself and written back with each frame's own delay and its loop flag, so the result still moves. It reads up to 300 frames, and up to 40 million pixels of them; a longer animation is refused out loud and its first frame used as a still, rather than quietly giving you a shorter GIF. Export is capped at 60 million pixels in total (frames × width × height) — turn off “Use the original image resolution” if you hit it.
Can I add more than a top and a bottom caption?
Yes. “Add caption” adds another, with no fixed limit. Each caption is its own box: drag it on the canvas or nudge it with the arrow keys (hold Shift to move further), and give it its own font, size, colours, alignment and box size. The panel templates open with one caption already placed in each panel.
Can I put the text above or below the picture instead of over it?
Yes. Set the caption bar to Top, Bottom or Top & bottom and a band is added outside the picture, with a height from 5% to 60% and a colour you pick. Captions are positioned against the whole canvas, so a caption at the top drops into the bar as soon as the bar exists.
Can I use a font other than Impact, and does Korean text work?
There are eight typefaces: Impact, Arial, Verdana, Courier New, Comic Sans MS, Times New Roman, Georgia, and a Hangul gothic stack. Pick the gothic one for Korean — Impact has no Hangul glyphs at all, so Korean set in Impact is drawn by whatever face the browser substitutes. They are font stacks rather than downloads, so nothing is fetched and the tool still works offline.
What can I save as, and at what size?
PNG, JPG (written at quality 0.92) or GIF. “Use the original image resolution” is on by default, so a picture saves at its own pixel size; turn it off to export 600px wide. Above about 16 million pixels the canvas is scaled down — iOS Safari paints a larger one blank — and the page tells you when that happens. MP4 is not offered.
Can I rotate, crop or recolour the picture, or lay a logo on it?
Yes, once a picture is loaded: rotate a quarter turn either way, flip it across or down, and apply greyscale, sepia or a blur from 0 to 12. “Reset picture” puts all of it back at once. It can be cropped as well, by typing the part to keep or by dragging a box on the picture, and a second picture such as a logo or a transparent sticker can be laid on top, moved, sized and faded.