Loading...
Loading...
A free in-browser meme and collage maker with real layers. Paste screenshots straight from the clipboard, drag and resize each one, crop down to the part you want, and stack classic meme captions on top. Export to PNG, JPEG, or WebP — nothing leaves your device.
This is a focused, browser-only meme maker with real layers — the missing piece between a single-image editor and a full design tool. Drag in or paste any number of images (Ctrl+V works for screenshots), and each one becomes its own layer you can move, resize, crop, reorder, hide, or delete. Stack as many text layers as you want with adjustable font, size, fill, stroke, and alignment — the defaults match the classic Impact-style meme caption out of the box. The whole canvas renders to a single composite image you can export as PNG (with optional transparency), JPEG, or WebP. Everything is done on the Canvas API in your browser, so nothing — no screenshot, no draft, no final image — is ever uploaded to a server.
Pick a preset (square, portrait, story, or wide) or enter custom width and height. Square 1080 is a safe default for posts; story is right for vertical reels and stories.
Click Add image to upload, drag files onto the page, or paste a screenshot straight from the clipboard with Ctrl+V (Cmd+V on Mac). Each image becomes its own layer.
Click a layer to select it, then drag to move. Use the corner handles to resize — image layers preserve their aspect ratio so they do not get squashed.
With an image layer selected, click Crop layer, drag a rectangle inside the layer, and Apply. Cropping is destructive but you can always Clear all to start over.
Click Add text — the default is bold uppercase Impact in white with a black stroke, the classic meme look. Edit the text, drag it into place, and adjust font, size, and color in the Properties panel.
Use Forward and Backward to control which layer is on top. Toggle the eye icon to hide a layer without deleting it.
Pick PNG (best for transparency or sharp text), JPEG (smallest for photo-heavy memes), or WebP. Click Download composition — the full-resolution result is generated locally and saved to your device.
1. Each layer carries position (x, y), size (width, height), z-order, and visibility. 2. Image layers hold an ImageBitmap from createImageBitmap(file). 3. Text layers hold the text plus font, size, fill, stroke, and alignment. 4. On every render, the composer walks layers bottom-to-top and draws to a 2D canvas. 5. Image layers use ctx.drawImage(bitmap, x, y, w, h). 6. Text layers use ctx.fillText / ctx.strokeText with word-wrapping at the layer's width. 7. Crop bakes a new ImageBitmap from a sub-region of the source — the layer's display size shrinks to match. 8. Export calls canvas.toBlob(format, quality) on the same canvas the user has been editing.
A layered composer is just a list of draw operations that gets re-played each render. Because the source bitmaps and text settings are kept around, the canvas is a pure projection of state — there is no destructive editing until the user explicitly applies a crop or duplicates a layer. PNG export preserves transparency and crisp text edges; JPEG and WebP take a quality knob and produce smaller files at the cost of some compression artifacts. None of this requires a server: the same Canvas APIs that render the editor view also produce the final exported file.
Reference: MDN — CanvasRenderingContext2D.drawImage()
| Goal | How to do it |
|---|---|
Classic Impact-style meme on one image | Add image, scale to fill the canvas. Add text — defaults are uppercase Impact, white fill, black stroke. Drag the text to the top, duplicate for a bottom caption. The default text style matches the classic look. |
Side-by-side screenshot comparison | Set canvas to Wide 1200×630. Paste two screenshots with Ctrl+V — they stack as separate layers. Drag and resize each to fill its half of the canvas. Great for before/after posts and bug reports. |
Three-up screenshot collage with captions | Pick Portrait. Paste three screenshots, resize each one to fill a third of the canvas height, then add a small text layer between each as a caption. Use Forward / Backward if a caption gets covered. |
Trim the navbar out of a screenshot | Add the screenshot as a layer. Click Crop layer and drag a rectangle around just the content you want. Apply — the layer becomes the cropped region. Crop is destructive — Clear all resets the canvas. |
Story-format meme with transparent background | Pick Story preset, tick Transparent for the background, add your character cutout (run it through Background Remover first), then add caption text. Export as PNG to keep transparency. |
Cut out the subject from any photo with on-device AI — no upload required.
Shrink JPG, PNG, or WebP files in your browser with an interactive quality slider.
Adjust, filter, rotate and crop photos in the browser — no uploads, no watermark.
Convert HEIC, JPG, PNG, WebP, and more — batch up to 25 files, all in your browser.
Last updated