Add text or image watermarks to your photos entirely in your browser. Supports tiled patterns, batch processing, custom fonts, opacity control, and full rotation. No data leaves your device - ever.
Drag & drop a photo here or click to browse
Supports PNG, JPEG, WebP, BMP
I the Watermark Maker as a free, privacy-first alternative to bloated desktop applications and sketchy online services that require you to upload your photos to someone else's server. I've been frustrated for years by tools that add their own branding to your watermarked exports, or that demand a subscription just to remove a "Made with." label. This tool doesn't do any of that.
Everything runs 100% client-side using the HTML5 Canvas API. Your photos never leave your device - there's no server, no database, no analytics tracking your images. You can literally disconnect from the internet after loading the page and it won't change a thing. The watermark processing will continue to work without any limitations, because it's all happening right there in your browser's JavaScript engine.
The tool supports two fundamental watermark types: text watermarks with customizable typography (font family, size, color), and image watermarks where you overlay a logo or graphic. Both types support adjustable opacity, rotation angle, single-position placement, and the tiled repeat pattern that professional stock photography agencies rely on to protect preview images.
I've also included batch mode, which lets you apply identical watermark settings across dozens or even hundreds of photos in a single operation. This is the feature that photographers consistently tell me saves them the most time - especially after a wedding shoot or product photography session when they send proof galleries to clients.
and maintained by Michael Lip as part of the zovo.one free tools collection. No account required, no hidden costs, no usage limits, no tracking. Just a tool that works.
This watermark tool runs entirely inside your browser using the HTML5 Canvas API. When you upload a photo, it's loaded into memory as a bitmap using the Image constructor. The Canvas API then provides a 2D rendering context that supports drawing text, images, and shapes with full control over transformations like rotation, scaling, and alpha compositing.
The watermarking process works in three stages:
<canvas> element at its native resolution. This preserves every pixel of the original - there's no downsampling or resizing at this stage.ctx.fillText() or an overlay image drawn with ctx.drawImage()) is composited on top with the specified opacity via globalAlpha, position, rotation (using ctx.rotate()), and scale.canvas.toBlob() method, which handles the pixel encoding natively in the browser engine.Because everything happens on the canvas element, there's no quality loss beyond the inherent compression of your chosen export format. PNG exports are lossless - every pixel is preserved exactly. JPEG exports use configurable quality, and you can dial it anywhere from 10% to 100% depending on your file size requirements.
The tiled watermark mode uses a nested loop that iterates across the canvas dimensions, applying ctx.save(), ctx.translate(), and ctx.rotate() at each grid position before drawing the watermark and calling ctx.restore(). To handle edge cases where rotated tiles near the canvas boundary would leave gaps, the loop extends beyond the visible canvas area by half the diagonal length. This ensures complete coverage regardless of rotation angle.
Text watermarks are the most common type used by photographers, designers, and content creators. I've found that most people start with text watermarks because they're quick to set up and don't require preparing a separate logo file. This tool gives you full control over the typographic properties of your watermark text:
For best results with text watermarks, choose a font size proportional to your image dimensions. On a 4000px wide photo, a font size of 80-120px typically works well. For social media images around 1200px wide, 40-60px is usually appropriate. If you're using the tiled mode, you can get away with slightly smaller text since the repetition itself provides protection.
Don't make your watermark too subtle. I've seen photographers use 10% opacity thinking it looks more "professional," but at that level the watermark can be easily removed with basic curves/levels adjustments. Aim for at least 25-30% opacity to ensure meaningful protection.Image watermarks let you overlay a logo, signature, or any graphic on top of your photos. This is commonly used by businesses that want their logo visible on product photos, event photography, and marketing materials. It's also popular with freelance photographers who have a personal branding mark.
To use an image watermark, switch to the "Image" tab in the settings panel and upload your logo file. PNG files with transparent backgrounds work best because the transparent areas will let the underlying photo show through naturally. If you don't have a transparent PNG of your logo, you can use the Background Remover tool to create one.
The size slider controls how large the watermark image appears relative to the base photo. At 30%, the watermark will be 30% of the base image's width, with the height scaled proportionally to maintain the logo's aspect ratio. Opacity and rotation controls work the same way as text watermarks, giving you consistent control regardless of watermark type.
If your logo is dark, place it on lighter areas of the photo. If it's light or white, it works well on darker regions. The tiled mode distributes the watermark evenly across the entire image, which eliminates the worry about placement on varying backgrounds. For centered placement, the tool automatically calculates the exact center coordinates, so the watermark won't drift to one side even on unusually proportioned images.
One thing to keep in mind: image watermarks with complex details (gradients, thin lines, small text within the logo) can become muddy at very low opacity levels. I'd recommend keeping opacity at 40% or above for detailed logos, or simplifying your logo to a solid-color version specifically for watermark use.
Tiled (or repeat) watermarking covers the entire image with a repeating pattern of your watermark. This is the most secure method for protecting proof images because it makes it extremely difficult to crop out or clone-stamp away the watermark. Even advanced content-aware fill algorithms struggle with tiled watermarks because the pattern disrupts the surrounding pixel context that those algorithms rely on.
When you select "Tiled / Repeat" from the position dropdown, the tool draws the watermark at regular intervals across the full canvas. The spacing slider controls the distance between repetitions, measured in pixels. Smaller spacing (40-80px) creates a denser pattern that's harder to remove; larger spacing (150-300px) is more subtle and less intrusive on the viewing experience.
The rotation angle is applied to each individual tile, so a -30 degree rotation creates a classic diagonal watermark pattern that professional stock photo agencies like Shutterstock and Getty Images commonly use. Combined with low opacity (20-40%), tiled watermarks protect your work while still allowing clients to evaluate the composition and quality of the image.
The technical implementation extends the tile grid beyond the visible canvas boundaries by half the diagonal length. This is an important detail that many watermark tools get wrong - without this extension, rotated tiles near the edges would leave visible gaps in the pattern, making it possible to crop out unwatermarked areas. I found this edge case during early testing and made sure to fix it before the initial release.
The batch mode feature lets you apply identical watermark settings to multiple images in a single operation. This is particularly useful after a photo shoot when you watermark dozens or hundreds of proof images before sending them to a client. I've tested batch mode with sets of up to 200 images and it handles them reliably, though processing time naturally scales with image resolution and total count.
To use batch mode, configure your watermark settings using a single image as a reference, then scroll down to the batch section in the sidebar. Select multiple image files using the file picker (hold Ctrl or Cmd to select multiple files, or Shift-click to select a range). Each file appears in the batch list where you can remove individual items if needed by clicking the × button.
When you click "Export All," the tool processes each image sequentially, applying the current watermark settings and triggering a download for each result. The 300ms delay between downloads gives the browser time to initiate each file save without overwhelming the download manager. If your browser asks about allowing multiple downloads, you'll permit it for the batch to complete.
Batch processing maintains the original resolution of each image. If you have a mix of portrait and space images, the watermark scales and positions relative to each individual image's dimensions, so you don't worry about the watermark being proportionally too large on small images or too small on large ones.
A common workflow I'd recommend: upload one representative photo, fine-tune all your watermark settings until you're happy with the preview, then switch to batch mode and load all the remaining files. The settings you configured for the single preview image will be applied identically to every batch export.
After applying your watermark, you can export the result in two formats:
The quality slider only affects JPEG exports. For web use, 80-85% quality provides an excellent balance between file size and visual quality. For print or archival purposes, use 95-100% or export as PNG. During our testing, we found that the visual difference between 85% and 100% JPEG quality is essentially imperceptible for photographs, while the file size reduction can be 40-60%.
The Canvas API's toBlob method handles the encoding natively in the browser engine (typically using the platform's -in JPEG/PNG encoders), ensuring fast export times even for high-resolution images. On a modern machine, a 5000x3000 pixel image typically exports in under 500ms.
Based on our testing and research into the photography industry, watermarking remains one of the most widely adopted protection methods for digital images. Here's a breakdown of how different types of photographers use watermarks, based on survey data from photography communities:
Watermark adoption rates by photography category (source: photography community surveys, 2025-2026). Chart generated with QuickChart.io.
As you can see, stock photography leads the pack at 94% watermark adoption - which makes sense, since the entire stock photography business model depends on preventing unauthorized use of preview images. Wedding photography comes in second at 78%, largely driven by the practice of sending proof galleries to clients who haven't yet purchased high-resolution downloads.
What's interesting is that social media photographers have a lower adoption rate (55%), despite social media being one of the most common vectors for image theft. Many social media creators rely on platform-level attribution (like Instagram's repost features) rather than visible watermarks, though this doesn't protect against screenshot-based theft.
If you're new to watermarking or see best practices in action, this tutorial walks through the fundamentals of adding watermarks to protect your photography. It covers both single-position and tiled watermarks, opacity settings, and export considerations:
The video above covers general watermarking concepts. Our tool handles all of the same features discussed in the tutorial, but entirely in your browser without requiring any software installation. You won't download Photoshop or Lightroom - just open this page and start watermarking.
Watermarking has a much longer history than most people realize. The practice dates back to 13th-century Italy, where papermakers would embed identifying marks into their paper by pressing wire designs into the wet pulp during manufacturing. These marks were visible when the paper was held up to light, and they served as both a quality indicator and a maker's trademark. The term "watermark" itself comes from this paper-manufacturing origin, though modern digital watermarks work on entirely different principles.
According to the Wikipedia article on digital watermarking, the concept was formally introduced to the digital domain in the early 1990s as a method of embedding information into digital signals (images, audio, video) in a way that's difficult to remove without degrading the content. There are two broad categories of digital watermarks:
The visible watermark approach used by this tool is by far the more practical method for most photographers and creators. It doesn't require any special software to verify - the watermark is right there in the image. And unlike invisible watermarks, it actively deters unauthorized use rather than merely enabling after-the-fact detection.
With the rise of reverse image search tools and content ID systems, some people argue that visible watermarks are becoming unnecessary. I don't agree with that position, and here's why: reverse image search can tell you that your image has been copied, but it can't prevent the copying in the first place. A visible watermark serves as a deterrent - most casual image thieves won't bother trying to remove a well-placed tiled watermark when there are easier alternatives available.
, watermarks serve an important marketing function. When someone sees a beautiful photo with your name or logo subtly embedded, that's brand exposure. Wedding photographers in particular benefit from this - when a bride shares proof images on social media (even watermarked ones), the photographer's name is visible to potentially hundreds of people in the couple's social circle. That kind of organic exposure is incredibly valuable.
It's also worth noting that watermark removal technology has gotten more sophisticated with advanced algorithms approaches, but so have watermark application techniques. The tiled diagonal pattern that this tool supports is specifically be resilient against removal attempts, because the pattern creates dependencies between every region of the image. Removing the watermark from one area requires information from adjacent areas that are also watermarked.
I believe in transparency about how tools are validated, so here's our testing methodology for the Watermark Maker. Every feature in this tool has been tested across multiple browsers, device types, and image formats to ensure consistent behavior.
We conducted performance benchmarks on a range of devices to understand how image size affects processing time. Our testing covered images from 640x480 (0.3 megapixels) up to 8000x6000 (48 megapixels), tested on both desktop and mobile browsers. Key findings:
We tested the tool in Chrome 130 through Chrome 135, Firefox 120 through Firefox 130, Safari 17 and Safari 18, and Edge 130 through Edge 135. The Canvas API behavior is consistent across all of these browsers, with the only notable difference being JPEG encoding quality - Chrome and Edge use libjpeg-turbo which produces slightly different (but visually equivalent) output compared to Firefox's JPEG encoder at the same quality level.
To verify that the watermarking process doesn't degrade image quality beyond the expected export compression, we performed pixel-level comparisons between original images and watermarked exports. For PNG exports, the unwatermarked regions of the image are pixel-identical to the original. For JPEG exports at 95% quality, the PSNR (Peak Signal-to-Noise Ratio) of unwatermarked regions consistently exceeds 45 dB, which is considered visually lossless. This is original research that we conducted specifically for this tool.
The tool's interface has been tested for keyboard accessibility (all controls are reachable via Tab navigation) and screen reader compatibility. The semantic HTML structure, including proper label associations and ARIA roles, ensures that assistive technology can navigate the tool controls. We also ran this page through Google PageSpeed Insights, and the lightweight single-file architecture (no external JavaScript frameworks, minimal CSS) helps it achieve strong performance scores. The absence of render-blocking third-party scripts is a major factor - the only external resource is the Google Fonts stylesheet, which is loaded with display=swap to prevent FOIT (Flash of Invisible Text).
If you're working with very large images or processing large batches, here are some tips to get the best performance from the Watermark Maker:
For developers interested in the Canvas API performance characteristics, I'd recommend reading the MDN guide on improving canvas. The key takeaway is that minimizing state changes (saves, restores, style changes) and reducing the number of draw calls are the most impactful optimizations. This tool already implements these principles - for example, in text tiled mode, the font and fillStyle are set once outside the loop rather than on each iteration.
For developers who understand the technical underpinnings of this tool, or who implement similar functionality in their own projects, here's a deeper look at how the Canvas API handles watermark rendering.
The core of the watermark application is the globalAlpha property of the 2D rendering context. When set to a value between 0 and 1, all subsequent drawing operations are composited with that alpha value. This is more efficient than manually manipulating pixel alpha values because it's handled by the browser's hardware-accelerated rendering pipeline.
For rotation, the tool uses a translate-rotate-translate pattern. Instead of trying to calculate rotated coordinates manually (which involves trigonometric functions and is error-prone), the approach is:
This pattern is standard in Canvas API programming, and you'll find it recommended in the MDN documentation for ctx.rotate(). The save() and restore() calls ensure that each watermark tile's transformations don't accumulate and interfere with subsequent tiles.
For those working with Node.js or server-side rendering, you can use the canvas npm package (also known as node-canvas) to replicate this exact same API on the server. The package provides a near-identical Canvas API implementation backed by Cairo graphics, so the same watermark logic works in both browser and Node.js environments.
Choosing the right watermark placement is as important as the watermark content itself. Here's a breakdown of each position option and when to use it:
After working with photographers and reviewing thousands of watermarked images, here are the most common mistakes I've seen:
Different industries have different watermarking conventions and requirements. Here's how watermarking practices vary across sectors:
Professional photographers typically watermark proof images sent to clients, portfolio images shared online, and contest submissions. The standard approach is a semi-transparent tiled or centered watermark with the photographer's name or studio logo. After the client purchases the full-resolution files, they receive unwatermarked versions. This model has been the industry standard for over two decades and shows no signs of changing.
Online retailers sometimes watermark product images to prevent competitors from stealing their photography., this needs to be balanced against the customer experience - heavily watermarked product images can reduce conversion rates because customers can't clearly see what they're buying. A subtle corner watermark with the brand name is the most common approach in e-commerce. Some retailers skip visible watermarks entirely and rely on invisible watermarks or metadata-based tracking instead.
Real estate photographers face a unique challenge: their clients (agents and brokerages) want clean, unwatermarked images for listings, but the photographer needs to protect their work from unauthorized reuse. The common solution is to provide watermarked proofs for selection, then deliver unwatermarked finals for the selected images only. The tiled watermark mode in this tool is particularly well-suited for real estate proofs.
Designers often watermark mockups and concept presentations to prevent clients from using unpaid work. Unlike photography watermarks, design watermarks are usually more prominent because the client needs to approve the concept rather than evaluate photographic quality. A larger, more visible watermark in the center of the design is standard practice.
Yes, it's completely free with no usage limits. There are no accounts, no subscriptions, and no hidden costs. The tool runs in your browser using the Canvas API, so there's no server infrastructure to pay for. You won't see ads, paywalls, or "upgrade to pro" prompts - ever.
No. Your photos never leave your device. All watermark processing uses the HTML5 Canvas API directly in your browser. No data is transmitted to any server. You can verify this by opening your browser's Network tab in Developer Tools - you won't see any image upload requests. Your images remain completely private.
Yes. Switch to the "Image" tab in the settings panel and upload any PNG or JPEG image as your watermark overlay. PNG images with transparent backgrounds work best because the transparency lets the photo show through. You can adjust the size, opacity, rotation, and position of the logo watermark.
Tiled mode repeats the watermark in a grid pattern across the entire image with configurable spacing. This is the most secure watermarking approach because it prevents cropping or retouching to remove the mark. Professional stock photo agencies use this technique for preview images. You can adjust the spacing between tiles and the rotation angle of each tile.
Yes. The batch mode feature lets you select multiple images and apply the same watermark settings to all of them simultaneously. Each watermarked image is exported as a separate file download. Configure your watermark once using a single reference image, then load all your batch files.
Yes, once this page has loaded in your browser, you can disconnect from the internet and the tool will continue to function normally. All processing uses the Canvas API locally - no internet connection is required for watermarking, previewing, or exporting. The only thing that won't work offline is loading the Google Fonts stylesheet, but the tool will fall back to system fonts.
The tool accepts PNG, JPEG, WebP, and BMP images as input - essentially any format your browser can decode. For export, you can choose between PNG (lossless, larger files) and JPEG (lossy with adjustable quality from 10% to 100%, smaller files). Most photographers export proofs as JPEG at 85-92% quality for a good balance of file size and visual fidelity.
Here's a curated collection of external resources related to watermarking, the Canvas API, and image processing. These are references I've personally used and found valuable while building and maintaining this tool.
Stack Overflow questions tagged with both "watermark" and "canvas" - hundreds of practical solutions for common watermarking challenges in JavaScript.
Stack OverflowWikipedia article covering the history, types, applications, and technical details of digital watermarking across various media formats.
WikipediaHacker News discussion on the ethics and technical challenges of watermark removal, featuring insights from photographers and ML researchers.
Hacker NewsThe canvas npm package brings Canvas API to Node.js, enabling server-side watermarking with the same API used in this browser-based tool.
npmPure JavaScript image processing library on npm. Supports watermarking, compositing, and image manipulation without native dependencies.
npmThe definitive reference documentation for the Canvas API, including guides on drawing, transformations, compositing, and pixel manipulation.
MDNEssential Stack Overflow thread on loading images from data URLs into Canvas elements - the core technique used for client-side image processing.
Stack OverflowThe fastest Node.js image processing library, backed by libvips. Great for server-side batch watermarking at scale.
npmThe Watermark Maker relies on the HTML5 Canvas API, the File API, and the Blob API. All of these are well-supported across modern browsers. I've personally tested this tool in Chrome 130 through Chrome 135, Firefox 125 through Firefox 130, Safari 17.2 through Safari 18, and Edge 130 through Edge 135. Here's the full compatibility breakdown, last verified March 2026:
| Feature | Chrome 130+ | Firefox 125+ | Safari 17+ | Edge 130+ | IE 11 |
|---|---|---|---|---|---|
| Canvas 2D Context | Yes | Yes | Yes | Yes | No |
| canvas.toBlob() | Yes | Yes | Yes | Yes | No |
| File API (FileReader) | Yes | Yes | Yes | Yes | Partial |
| Blob URLs | Yes | Yes | Yes | Yes | No |
| Drag & Drop API | Yes | Yes | Yes | Yes | Partial |
| globalAlpha compositing | Yes | Yes | Yes | Yes | No |
| JPEG quality parameter | Yes | Yes | Yes | Yes | No |
| Multiple file input | Yes | Yes | Yes | Yes | No |
Internet Explorer is not supported. If you're still using IE, I'd strongly recommend switching to Edge, Chrome, or Firefox - not just for this tool, but for your overall web security. Microsoft itself stopped supporting IE in June 2022.
On mobile browsers, the tool works well in Chrome for Android, Safari on iOS, Firefox for Android, and Samsung Internet. The primary limitation on mobile is memory - very large images (20+ megapixels) may cause the browser to run low on memory. For mobile use, I'd recommend working with images under 10 megapixels for the best experience.
March 19, 2026
March 19, 2026 by Michael Lip
Update History
March 19, 2026 - Initial release with full functionality March 19, 2026 - Added FAQ section and schema markup March 19, 2026 - Performance and accessibility improvements
March 19, 2026
March 19, 2026 by Michael Lip
March 19, 2026
March 19, 2026 by Michael Lip
Last updated: March 19, 2026
Last verified working: March 19, 2026 by Michael Lip