Stamp a logo or a text signature across a whole folder of photos in one pass — tiled, angled and faded so it survives a crop but does not ruin the picture. Desktop watermark apps charge a licence and online ones cap you at a few images a day or stamp their own branding on the result. This runs entirely on your own machine: no upload, no queue, no watermark on your watermark.
Each photo is decoded by your browser, redrawn onto a canvas at its original pixel size, stamped, then
re-encoded with canvas.toBlob(). Sizes are measured against each photo's own width, so a 6000 px
raw export and a 900 px web crop get proportionally identical marks. Nothing is uploaded and nothing is
downscaled unless you ask for it — the file you download is the file that was made.
The .zip is written by hand: every entry is stored uncompressed with a CRC-32 checksum, which is why a zip of already-compressed JPEGs is the same size as the JPEGs themselves. Compression would save nothing here.
A visible watermark discourages casual copying; it is not copy protection. If you need the mark to survive a determined editor, tile it, keep it above roughly 40% opacity, and cross the middle of the frame.