๐Ÿ˜‚ Meme Generator

Add top and bottom captions to your own image and download the result as a PNG or JPEG.

๐Ÿ˜‚

Upload your meme image Release to upload

or click to browse

JPG PNG WebP GIF BMP

Max 20 MB

โš  Some image hosts block cross-origin requests โ€” upload directly for best results.

๐Ÿ–ผ๏ธ

Meme Text

Style Presets

Text Style

NoneThick

Export

Live Preview Updates automatically
Preview scales to fit ยท Download saves full resolution

About Meme Generator

  • โ€ข Upload any image or load from URL, add top and bottom text, customize the style, and download your meme.
  • โ€ข Long text is automatically word-wrapped to fit the image width.
  • โ€ข Style presets let you jump straight to classic Impact, modern, dark, or clean looks with one click.
  • โ€ข Download as PNG (lossless, best quality) or JPG (smaller file size, great for sharing).
  • ๐Ÿ”’ Your images are processed entirely in your browser using the Canvas API โ€” nothing is uploaded to any server.

Canvas rendering, font sizing and the stroke effect

When you load an image the tool reads its natural width and height and creates a canvas of exactly those dimensions, then draws the image as the background layer. All captions are painted on top of that canvas, which is why the exported file keeps the original resolution.

Text size is expressed as a percentage of image width rather than a fixed pixel value, so the same setting looks proportionally identical on a small thumbnail and a large photo. The font size in pixels is the percentage divided by 100, multiplied by the image width, with a 12 pixel minimum floor. Line height is 1.25 times the font size, and long captions wrap automatically to fit the canvas width.

The classic meme outline is produced by stroking each line before filling it. The outline colour is drawn as a thick border around the glyphs at your chosen width, then the fill colour is painted inside, which keeps white text legible over bright backgrounds. Setting outline width to zero turns the stroke off entirely for a flat, modern look.

A worked example with the Classic preset

Load an 800 by 600 pixel photograph and click the Classic preset. That preset sets Impact, text size 8 percent, all caps on, white fill, black outline, outline width 4, centre alignment.

The font size in pixels works out as 8 divided by 100, multiplied by 800, which is 64 pixels. Line height is 64 times 1.25, or 80 pixels, so a two-line top caption occupies 160 pixels of the 600 pixel height. Typing "when the build passes" produces "WHEN THE BUILD PASSES" because all caps is on.

Drag the size slider up to 12 percent and the font becomes 0.12 times 800, or 96 pixels, with a 120 pixel line height. On a wider 1600 pixel image the same 8 percent setting gives 128 pixels, keeping the caption the same relative size.

The slider range runs from 3 percent to 18 percent in half-point steps, so on that 800 pixel image you can move between 24 pixels and 144 pixels of text. Exporting as PNG gives a lossless 800 by 600 file.

Choosing settings that stay readable, and export trade-offs

Readability comes from contrast, not size. White text with a black outline of three to five pixels survives almost any background, which is why the Classic preset exists. On pale or washed-out images the Dark preset inverts this, using black text with a white outline. If you turn the outline off, check the caption against the busiest part of the picture rather than the calm part.

Size the text to the image, not to your screen. Because the setting is a percentage of width, a caption that looks correct in the preview will export at the same proportion, but very tall portrait images leave less vertical room, so long captions can crowd the subject. Shorten the wording before shrinking the font.

For export, PNG is lossless and best for images with flat colour, screenshots or sharp text edges. JPEG produces smaller files and suits photographs, but recompressing an already compressed photo can soften the outline slightly. Note that animated GIFs are accepted as input but the export captures a single frame.

Frequently Asked Questions

No. The file is read by your browser and drawn onto a canvas locally, and the download is generated from that canvas on your device. The image never leaves your computer. Loading an image by URL is the only case where your browser fetches something from elsewhere.
JPG, PNG, WebP, GIF and BMP files up to 20 MB are accepted, by drag and drop, file browser or URL. The output canvas matches your image's native pixel dimensions, so a large source image produces a large, full-quality meme rather than a downscaled copy.
The canvas uses whichever of Impact, Arial Black or a generic sans-serif your system actually has installed. Impact ships with Windows and macOS but is often absent on Linux, so the caption falls back to the next available font. Arial Black is the closest substitute in the font list.
Choose PNG for lossless output, sharp outline edges and images with flat colour or graphics. Choose JPEG for photographs where a smaller file matters more than perfect edges. JPEG applies compression, which can slightly soften the outline stroke around each letter.
The tool draws one caption block at the top and one at the bottom, and you control horizontal placement with the left, centre and right alignment control. There is no free positioning or dragging, so for captions in the middle of an image you would need a full image editor.