Batch Image Watermark

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 Upload
1 Choose your images
🖼️ Drop JPG / PNG / WebP files here

or click to browse — any number of images

2 Configure watermark
5%
Position
180px
-30°
55%
92
Preview — first image. Change any setting to update.
Add images above to see a live preview.
3 Download watermarked images

All processing happens in your browser. Nothing is sent to any server.

How it works

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.

Text watermark Canvas 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).
Logo watermark 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.
Tiled repeat When tiled mode is on, the watermark is stamped repeatedly in a rotated grid across the whole image using canvas save/restore and translate/rotate per cell — similar to how document-protection watermarks work in PDF editors.
Rotation Each watermark element is drawn on a transformed canvas context (rotate by the chosen angle in radians). The bounding box is pre-calculated so the rotated text still fits within the image margins correctly.
9-point positioning The anchor grid maps to nine (x, y) pairs with a 2% edge margin so the watermark never clips. Tile mode ignores the position grid and fills the canvas instead.
ZIP download JSZip bundles all processed images into one .zip (STORE compression — images are already compressed) and FileSaver.js triggers the browser download. Files are named wm_{original}.ext.

Frequently asked questions

Are my images uploaded anywhere?

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.

What does the tiled watermark mode do?

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.

How do {filename} and {date} tokens work?

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.

What logo format gives the best result?

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.

How many images can I process at once?

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.

Why choose PNG vs. JPEG vs. WebP output?

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.