Meme Generator
Choose your own image, type top and bottom text or add draggable text boxes, then download the meme as PNG or JPG — made on your device, nothing uploaded.
- Free
- No account
- Runs in your browser
- Nothing uploaded
Runs entirely in your browser — your input is never uploaded, logged, or stored.Privacy policy
What is Meme Generator?
This meme generator puts classic meme captions — white capital letters with a black outline — on top of any image you choose. It is for anyone who wants to make a meme, caption a screenshot or add text to a photo quickly, without an account, a watermark or sending the picture to someone else's server.
You start from your own image. No meme templates are bundled, because the famous template pictures are photos and film stills owned by other people, and the tool never fetches an image from anywhere. Drop in a PNG, JPG, WebP, GIF, BMP or AVIF file up to 50 MB, type the top and bottom text, and add as many extra text boxes as you like; extra boxes can be dragged anywhere on the picture, right up to its edges, with a mouse or a finger, or moved with the arrow keys.
Text size is automatic unless you set it. For top and bottom captions the tool searches for the largest whole-pixel font size at which the text, wrapped onto as many lines as it needs, fits the image width minus a margin of 4% of the shorter side, and takes no more than a quarter of the image height. Words are never split while a smaller size would keep them whole, and a short caption is capped at 20% of the shorter side so a single word does not fill the picture. Type a number in the Size box to override it. The outline is drawn with the canvas strokeText function at a width you choose (8% of the font size by default) underneath the filled letters, which is what gives meme text its readable edge on any background.
Fonts are the ones your device already has, plus optional Noto fonts served by this site. Impact, the traditional meme font, is usually present on Windows and macOS but often missing on Android and Linux; when it is missing the page says so and a similar bold font is used. Choose Noto Sans bold for an identical look on every device, or Noto Sans Arabic, Hebrew or Devanagari for captions in those scripts. Emoji are drawn with your device's own emoji font, so they look different on other phones.
The finished meme is saved at the image's own resolution as PNG (lossless) or JPG (quality 92 by default). The one exception is a photo above 16,777,216 pixels (the most an iPhone or iPad browser can draw) or longer than 16,384 pixels on a side, which is saved at the largest size within those limits, with a note saying so. JPG has no transparency, so transparent areas of a PNG, WebP, GIF or AVIF become white, and the page says so. Animated GIFs keep only their first frame.
Everything happens in your browser: the image is decoded and drawn on a canvas on your device and the result is offered as a download. You can confirm in your browser's developer tools (Network tab) that no request carries your image. The site does load Google Analytics, but your picture is never part of any request.
1. The file's first bytes are checked to confirm it really is a PNG, JPG, WebP, GIF, BMP or AVIF image, whatever its name says; files over 50 MB are refused before being read. 2. The browser decodes the image upright (EXIF orientation applied) onto a canvas at its own size, or at the largest size under 16,777,216 pixels if it is bigger. 3. For each caption, text is wrapped greedily at spaces using the browser's own text measurement. Auto size is a binary search for the largest whole-pixel size whose lines fit the width (image width minus a 4% margin each side; 90% of the width for extra boxes) and height (25% of the image; 35% for extra boxes), without breaking a word, capped at 20% of the shorter side, minimum 8 px. Lines are spaced at 1.15 × the font size. 4. Top text starts at the top margin, bottom text ends at the bottom margin, and extra boxes are centred where you drop them, kept inside the picture. 5. Each line is drawn twice: strokeText with round joins at the outline width (a percentage of the font size), then fillText in the text colour on top. 6. For JPG the canvas is first filled with white, because JPG has no transparency. The canvas is encoded as PNG or JPG and offered as meme-<original name>.png or .jpg.
Worked examples
- cat.png (1000 × 800) with top text "one does not simply" → meme-cat.png at 1000 × 800; the caption starts 32 px from the top (4% of 800) and is centred.
- A one-word top caption "hi" on a 1000 × 800 image is capped at 160 px (20% of the 800-px side) instead of growing to fill the width.
- A 24-megapixel phone photo (5712 × 4284) → saved at 4729 × 3547 with the note: "The image (5712 × 4284 px) was saved at 4729 × 3547 px to fit browser drawing limits (16.7 megapixels on iPhone and iPad, 16,384 px per side)."
- meme.jpg that is really a PDF → nothing is made; the tool says "meme.jpg" is actually a PDF file and to use a PDF tool for it.
How to use Meme Generator
- Click "Choose your image", drop a picture onto the box, or paste one with Ctrl+V (Cmd+V on a Mac).
- Type your top and bottom text. Click "Add text box" for more captions and drag them into place on the preview.
- Adjust the font, text and outline colours, outline width, alignment, ALL CAPS or a fixed Size if you want.
- Choose PNG or JPG under "Save as", click "Create meme", then click "Download".
Common errors
- "Create meme" stays greyed out — every text box is empty. Type at least one caption first.
- "Font size must be a whole number from 4 to 1000 px, or empty for auto." — the Size box holds a decimal, a value out of range or a typo. Fix it, or clear it to go back to automatic sizing.
- "Impact is not installed on this device" — common on Android and Linux. A similar bold font is used; pick Noto Sans bold if you need the same look everywhere.
- "Top text is too big to fit — shorten the text or use a smaller size." — with automatic sizing the text could not fit even at 8 px, or the Size you typed makes a word wider than the image or the block taller than it. Shorten the caption, split it across boxes, or lower the size.
- The file is not the format its name says — for example a .jpg that is really a PDF or HEIC. The message names the real format; convert it to JPG or PNG first.
- A file over 50 MB is refused with a message like: "photo.jpg" is 60.00 MB, over the 50.00 MB limit for this tool. Everything runs in your browser's memory, so very large files can crash the tab. Resize or compress the image first.
FAQ
How do I make a meme with my own picture?
Choose or drop your picture on this page, type the top and bottom text, and click "Create meme". The meme is drawn in your browser and downloads as a PNG or JPG with no watermark.
How do I add text to an image online for free?
Load the image, type in the top or bottom box, or click "Add text box" and drag the text wherever you want it. You can turn ALL CAPS and the outline off for plain captions, and change the colours and alignment.
Why are there no meme templates?
The well-known template images are photos and film stills that belong to other people, so this tool does not bundle or download any. You use your own image, which also means nothing has to be fetched from the internet.
Is my image uploaded to a server?
No. The picture is decoded, captioned and encoded by your own browser, and the result is handed to you as a download. You can check the Network tab in your browser's developer tools: no request carries your image.
What font do memes use?
Classic memes use Impact, in white capitals with a black outline. This tool uses Impact when your device has it and tells you when it does not; Noto Sans bold is offered as a font that looks the same on every device.
Can I write a meme in Arabic, Hebrew or Hindi?
Yes. Choose Noto Sans Arabic, Noto Sans Hebrew or Noto Sans Devanagari from the Font menu; the font is loaded from this site and right-to-left text is drawn right-to-left.
Does the meme generator work on iPhone and Android?
Yes. It runs in the mobile browser, and you can drag extra text boxes with your finger. Photos above 16.7 megapixels are saved slightly smaller on every device so the result can be drawn on an iPhone or iPad.
Will the meme lose quality?
Saved as PNG, the image pixels are kept exactly and only the text is added. JPG at the default quality of 92 makes a much smaller file with a small, usually invisible loss.
Related tools
- Image ResizerDrop images, choose a percentage, a width, a height or an exact pixel size, and download the resized copies — all processed on your device.
- WebP to JPG ConverterDrop WebP images, pick a quality and a background colour for transparent areas, and download them as JPG — converted on your device, never uploaded.
- Image CompressorDrop JPG, PNG or WebP images, set a quality or a target size in KB, and download smaller files — compressed on your device, never uploaded.
- Collage MakerAdd 2 to 9 photos, pick a layout and size, drag each photo into place, and download the collage as JPG or PNG — made on your device, nothing uploaded.
Prefer AllUtil on Google
One click adds AllUtil to your Google preferences. You'll see our tools highlighted with a Preferred badge in Search and AI answers.