Image Watermark
Add a text watermark or upload a logo image, control its size, opacity, position, and rotation, and apply it to your photos before downloading — done entirely on your device.
Your image is processed on your device via Canvas and is never uploaded to our servers.
Drag an image here or choose one
You can select more than one image (JPG, PNG, or WebP)
What this tool does
Adds a watermark to images, either text you type or a logo image you supply, positioned where you choose. Several images can be watermarked at once with the same mark.
When to use it
- You are publishing your photography and want it marked with your name or handle.
- You are sharing product photos and want them branded.
- You are sending samples to a client before terms are agreed.
- You have a batch of images that all need the same logo.
How to use it
- Drag your images onto the drop area or choose them.
- Choose the "Watermark type": Text or Logo (image).
- Type the "Watermark text", or pick a logo file — a PNG with a transparent background is preferred.
- Set the "Position" and the "Export format".
- Download the watermarked images individually or with "Download all as ZIP".
A practical example
Input
Twenty product photos and a transparent PNG logo, placed in the bottom corner.
Output
Twenty images each carrying the logo in that same corner, downloadable together as a ZIP.
Limitations
- The watermark is merged into the image's pixels and cannot be removed from the result — keep your originals.
- A logo with a white background will sit in a white box covering what is under it; use a transparent PNG.
- A watermark does not stop anyone cropping or editing the image; it is a visible mark, not technical protection.
- Positions are limited to the options offered, with no free coordinate control.
Privacy and processing
Both the images and the logo are processed inside your browser through the canvas, and neither is uploaded to our servers.
Technical notes
- The mark is drawn onto the image with the browser's canvas, so text renders correctly in any script because the browser's own text engine draws it.