Image Watermark Tool
Add text or image watermarks to images, adjust position, opacity, and size
Drag images here, or click to select files
Supports JPG, PNG, WebP, BMP formats, select multiple at once
What is Image Watermark?
Image watermarking places text, a logo, or another image over a picture to show ownership, source, brand identity, usage status, or publication context. It is commonly used for product photos, portfolios, event images, training material, social posts, and previews sent before final approval. The challenge is balance: a watermark should be visible enough to discourage casual reuse, but not so heavy that it ruins the subject, covers important details, or makes the image look unprofessional. Position, opacity, size, repetition, and rotation all matter. This browser-based tool is intended for fast labeling and lightweight protection without uploading the original image.
How to Use
How to use
- Drag or click to upload images (supports multiple)
- Select watermark type: text or image watermark
- Set watermark content, position, opacity, size, and rotation
- Click "Add Watermark" button, preview and download
Watermark Checks
- Preview different image sizes; a watermark that is clear on a large image may be too strong or unreadable on a thumbnail.
- Keep an unwatermarked original so you can change position, opacity, or wording later.
Use Cases
Technical Principle
Watermarking happens entirely on a 2D canvas. The source image is drawn into an HTMLCanvasElement at its native pixel dimensions through ctx.drawImage, then text or a logo is composited on top using ctx.fillText for strings and a second drawImage call for raster overlays. Opacity is controlled by ctx.globalAlpha, which multiplies onto every alpha channel that follows; a globalAlpha of 0.5 against a 50%-transparent PNG ends up at 25% on the final pixel, which is the most common cause of 'why is my watermark invisible' bug reports. Positioning uses standard canvas transforms: ctx.translate moves the origin to the placement anchor (top-left, top-right, centre, bottom-right, or each cell of a 3×3 grid), ctx.rotate(angle) tilts a diagonal stamp around that origin, and the draw call places the mark with no further offset. Tiled watermarks call CanvasPattern.createPattern with the rotated source and ctx.fillRect across the whole canvas, which is how a full-page DRAFT stripe stays evenly spaced regardless of source dimensions. Font metrics come from ctx.measureText, which reports CSS pixels, so a 28 px label that fits the preview on a 2x display can clip on a 1x mobile export. The export step calls canvas.toBlob with 'image/png', 'image/jpeg', or 'image/webp' and an optional quality parameter for the lossy formats. The canvas runs at the source resolution, so the output preserves the original pixel dimensions but does not carry the source EXIF orientation, ICC profile, or other metadata. Batches above ~30 large files start blocking the UI thread because toBlob is asynchronous but the draw stack runs synchronously on the main thread, which is why a heavy workload benefits from moving canvas work into a Web Worker with OffscreenCanvas.
- Composite stack: ctx.drawImage for the base, ctx.fillText (or a second drawImage) for the mark, ctx.globalAlpha for transparency multiplication.
- Alpha math: globalAlpha multiplies onto each pixel's existing alpha, so a 0.5 mark on a 0.5-alpha PNG renders at 0.25, not 0.5.
- Rotation: ctx.translate to the anchor, ctx.rotate(angle) in radians, then draw at origin (0,0) so the transform stays centred on the placement point.
- Tiling: createPattern returns a CanvasPattern that fillRect can paint across the whole canvas, keeping spacing uniform across any source dimensions.
- Text metrics: measureText reports CSS pixels, so a label sized on a 2x preview can overflow the image edge on a 1x mobile export; size proportional to canvas.width when in doubt.
- Export: toBlob('image/png' | 'image/jpeg' | 'image/webp', quality) preserves source resolution but strips EXIF and ICC; rotate based on EXIF orientation before draw if portrait/landscape correctness matters.
Examples
Copyright text in bottom-right corner
Type: Text watermark
Text: "(c) 2026 ToolAct Studio"
Font: 28 px, white (#FFFFFF)
Position: bottom-right
Opacity: 50%
Use: portfolio photos, blog hero imagesDiagonal tiled draft mark across full image
Type: Text watermark, tiled
Text: "DRAFT - DO NOT SHARE"
Font: 48 px, light gray (#CCCCCC)
Rotation: -30 degrees
Opacity: 25%
Tile spacing: 200 px
Use: unreleased product shots in client reviewPNG logo in top-left, 15% scale
Type: Image watermark
Watermark file: brand-logo.png (transparent background)
Position: top-left, 20 px inset
Scale: 15% of original image width
Opacity: 80%
Result: logo appears at 288 px wide on a 1920 px hero imageBatch process 30 product photos
Input: 30 JPG product photos, 2000 x 2000 px each
Watermark: text "shop.toolact.com"
Position: bottom-center, 40 px margin
Opacity: 60%, Output format: JPG, quality 92
Processing time: ~8 s, total output: 24 MBFAQ
Is the image uploaded for watermarking?
No. The watermark is composited onto the image in your browser using canvas. The original bytes never leave your device, and neither does the watermarked output.
What watermark styles are supported?
Text watermarks (custom string, font size, color, opacity, rotation, tile/repeat for full coverage) and image watermarks (your own logo overlaid at a chosen position and opacity). Most builds support both at once.
Where should I place the watermark?
Corner placement (typically bottom-right) is least obtrusive but easy to crop out. Tiled watermarks across the whole image are harder to remove cleanly but reduce visual appeal. Centered semi-transparent watermarks balance the two. Choose based on whether the priority is legibility or copyright protection.
Can the watermark be removed?
A determined attacker can usually remove single-corner watermarks by cropping or content-aware fill, especially on photos with regular backgrounds. Tiled, semi-transparent watermarks are harder. No watermark is unremovable - treat it as a deterrent and a copyright marker, not as actual protection.
What output format and quality?
PNG preserves the watermark's edges crisply (recommended for line-art and screenshots). JPEG re-encodes the result and can soften the watermark slightly; pick quality 90+ for clean output. The page lets you choose format and quality.
Are EXIF and metadata preserved?
Most likely no - canvas-based processing usually drops EXIF and ICC profile data. That can be a privacy benefit (your camera metadata, GPS location, and timestamp are removed) but means the watermarked copy is no longer a forensic original.
Can I batch watermark multiple images?
Yes. Drop several files; the same watermark is applied to each. Batch size is limited by browser memory - very large batches slow processing or run out of memory on mobile. Process in chunks of ~20-50 images for stability.