Stamp text or logo onto hundreds of JPG, PNG, and WebP images at once — tiled, rotated, or pinned to any corner. Nothing leaves your browser.
🔒 100% Private — No Uploador click to browse — any number of images
All processing happens in your browser. Nothing is sent to any server.
Every step runs inside your browser using the Canvas API. Your images are never sent to a server or third party, making this safe for private, confidential, or client photos.
fillText() renders your text at a size scaled to each image's width — so the watermark looks proportional whether the image is 400 px or 6000 px wide. Dynamic tokens: {filename} inserts the original file name; {date} inserts today's date (e.g. 2025-06-13).
drawImage() composites your PNG logo over each photo using globalAlpha for transparency. The logo is scaled as a percentage of the destination image's width, then placed at your chosen anchor point.
save/restore and translate/rotate per cell — similar to how document-protection watermarks work in PDF editors.
.zip (STORE compression — images are already compressed) and FileSaver.js triggers the browser download. Files are named wm_{original}.ext.
No. This tool runs entirely in your browser using the Canvas API. Your files never leave your device — nothing is sent to Knackpad servers or any third party. It is safe for watermarking confidential, personal, or client photos.
Tiled mode stamps the watermark repeatedly across the entire image in a diagonal grid, similar to the "CONFIDENTIAL" watermarks you see on legal documents or PDF editors. Use it when you want maximum protection — a single-position watermark can be cropped out, but a full-tile cannot. Adjust the spacing slider to control how densely the tiles repeat.
In text mode, any occurrence of {filename} in your watermark text is replaced with the original file's name (without extension) at processing time. {date} is replaced with today's date in YYYY-MM-DD format. Example: "© 2025 — {filename}" on a file named "product_01.jpg" becomes "© 2025 — product_01". This lets you stamp unique per-file metadata without editing each image individually.
A PNG with a transparent background works best. The tool uses the logo's alpha channel when compositing, so transparent areas show the underlying photo through naturally. JPEG logos have no transparency and appear with a solid background box. SVG is not supported directly — convert to PNG first.
There is no hard limit. Modern browsers handle dozens to a few hundred images smoothly. Very large batches of high-resolution photos (500+) may be slow because each image is decoded and re-encoded entirely in JavaScript — consider splitting into smaller groups if you notice slowness. The progress bar updates per image so you can track the batch.
JPEG: smallest file size for photos; lossy but good quality above 85. Use the quality slider (default 92) to balance size vs. sharpness. PNG: lossless, larger files; ideal when the source image has text, screenshots, or you need zero quality loss. WebP: modern format with better compression than JPEG at the same quality; supported in all current browsers but less universal for sharing.