Loading…
Add text or logo watermark to images. Use for branding; for cropping use image-cropper. Input: image ≤10MB. Returns watermarked image. 100% client-side, files never leave browser.
Image Watermark is loading — interactive editor will appear here. Use examples below to try instantly once loaded.
Press ? for keyboard shortcuts
Adds text and/or logo watermarks to images via canvas. Text controls: content, font size 10–120, color, opacity 0–100, sans/serif/mono, bold/italic, rotation −180–180. Logo controls: upload PNG/JPEG/WebP, scale 5–100%, opacity. Position via 3×3 grid plus offset X/Y and optional tiled repeat across the image. Output to JPEG/PNG/WebP.
Protecting photos and branding content normally requires cloud editors that see your images. This tool composites watermarks locally with precise position, tiled repeat, and rotation, so you can batch-protect images without uploading them.
This tool is part of the DevStackIO platform — a collection of free online developer tools from DevStackIO. Browse more free developer resources on DevStackIO.
Photographers adding copyright, marketers stamping logos on campaign images, and anyone needing quick, private watermarking without Photoshop.
Drop a base image (JPEG/PNG/WebP, 10MB) — it appears in the preview canvas scaled to max 2000px.
Optionally drop a logo image (PNG with transparency recommended) in the second zone.
Set text, font size, color, opacity, family, bold/italic, rotation. Set logo scale/opacity if a logo is loaded.
Pick a position from the 3×3 grid (top-left … bottom-right), adjust offset X/Y, enable Tiled to repeat across the image.
Choose output format (JPEG/PNG/WebP + quality) and click Download. Preview updates live (100ms debounce) and never uploads.
Input: 2000×1500 base, text '© DevStackIO' 32px white 60% at bottom-right → Output: watermarked JPEG, text composited via fillText with globalAlpha.Input: base + logo PNG scaled 20% at center tiled → Output: logo repeated in a grid with rotation −30°, each tile drawn with translate/rotate/drawImage.Is the image uploaded? No
watermarking is canvas-only in your browser. Images never leave your device.
What formats are supported?
Base: JPEG/PNG/WebP; Logo: PNG/JPEG/WebP. Output: JPEG/PNG/WebP with quality control (PNG ignores quality).
Can I use both text and logo? Yes
they composite in order: base → text (or tiled text) → logo (or tiled logo) with separate opacities.
How is position calculated?
From the 3×3 grid anchor plus offset X/Y. Tiled ignores position and repeats in a grid with rotation applied per tile.
Authoritative specifications, standards, and in-depth reading for Image Watermark.
Click or drop base image here
Supports JPEG, PNG, WebP · 10MB max · 100% local
Optional: Click or drop logo image (PNG with transparency recommended)
Supports PNG, JPEG, WebP · 10MB max · used as image watermark
Compress JPEG, PNG, and WebP images in your browser. Reduce file size without visible quality loss.
Resize images by width/height or percent. Use when dimensions must change; for smaller files use image-compressor. Input: image ≤10MB. Returns resized PNG/JPEG/WebP. 100% client-side, files never leave browser.
Generate placeholder images by size and text. Use for mockups; for editing photos use image-resizer. Input: dimensions + options. Returns PNG download. 100% client-side, files never leave browser.
Crop images with aspect presets and free select. Use when trimming; for scaling use image-resizer. Input: image ≤10MB. Returns cropped PNG/JPEG. 100% client-side, files never leave browser.
Embed raster images as SVG. Use when needing SVG wrappers; for optimizing vectors use svg-optimizer. Input: image ≤10MB. Returns SVG. 100% client-side, files never leave browser.
Combine images into a grid collage. Use for side-by-side; for animation use gif-maker. Input: images ≤10MB. Returns collage PNG. 100% client-side, files never leave browser.
Rotate images 90, 180, or 270 degrees and flip them horizontally or vertically. Preview and download — files never leave your browser
Generate favicons (16/32/180 PNG + ICO) from one image. Use for site icons; for compression use image-compressor. Input: image ≤10MB. Returns favicon set + HTML. 100% client-side, files never leave browser.