Tiled Image Watermark

Repeat a text watermark across the whole image — diagonal, staggered and impossible to crop off. Choose size, color, opacity and density. Your file never leaves your browser.

Try:
Watermarked image

Tile a watermark across a whole image, in your browser

A watermark tucked in one corner is one crop away from gone. This tool repeats your text over the entire picture — the anti-theft pattern stock agencies put on their previews — so any crop, screenshot or re-upload still carries your mark. Pick the image, type the text, and the tiled pattern is drawn with ffmpeg locally: nothing is uploaded, and the original file never leaves your machine.

Everything about the pattern is adjustable: Text size, Text color, Opacity, the Angle of the whole grid (30° is the classic diagonal, 0 gives straight horizontal rows), how many Tiles across and Tiles down, and whether alternate rows are staggered (Brick) or aligned (Grid). Tile positions are relative, so the same settings look identical on a 400px avatar and a 6000px photo — no re-tuning per image.

Worked example

Upload beach.jpg (1600 × 1200) and use the defaults: text SAMPLE, size 32, color #ffffff, opacity 0.3, angle 30, 4 tiles across, 5 down, Brick layout. The output is beach.jpg at the same 1600 × 1200 — forty-odd white SAMPLE tiles running diagonally corner to corner, offset row to row, with no bare triangles in the corners. Over a solid blue area (RGB 0, 0, 255) a glyph pixel measures RGB (77, 77, 255): exactly 30% white composited over the photo, so the picture still reads through the mark.

Drop Opacity to 0.15 and the same pixel measures RGB (38, 38, 255) — a whisper-light proofing mark. Raise Tiles across/down to 6 × 8 and the pattern becomes dense enough that cloning it out costs more than licensing the photo.

Choosing settings

Limits and edge cases

FAQ

Will the watermark survive cropping?

That is the point of tiling. A corner watermark disappears with one crop; a tiled pattern repeats across the whole frame, so every crop large enough to be useful still contains several complete tiles. Raise Tiles across/down for smaller crops.

Can I tile a logo image instead of text?

Not here — this tool tiles text. The page takes a single uploaded image, so there is nowhere to supply a second logo file. To place a logo once (with position, scale, opacity and blend mode) use the image-composite tool, or type your studio name here as the repeating mark.

Is my photo uploaded anywhere?

No. The page loads an ffmpeg build compiled to WebAssembly and runs the whole watermarking pass inside the browser tab. The image is read from disk into memory, processed, and offered back as a download — no server round trip, which is also why it works offline once the page has loaded.

Why does the watermark look darker than the opacity I asked for?

It shouldn't — and if you have seen that in other tools, this is the reason. Naively drawing semi-transparent text onto a transparent layer blends the glyphs against black first and then again during compositing, so 30% opacity lands nearer 25% and muddied. Here the text is drawn fully opaque and the whole layer's alpha is scaled once at the end, so 30% opacity composites to exactly 30%.

What size and density should I use for a 4000px photo?

Density is relative, so Tiles across/down need no change at all — 4 × 5 covers a 400px thumbnail and a 4000px master the same way. Only Text size is in pixels: scale it with the image, around 2% of the width, so about 80 for a 4000px-wide photo.

Does the output keep my image's format and quality?

With Output format set to Keep, the file stays in its original container (a JPG in, a JPG out) and is re-encoded once. Choose PNG for a lossless result, WebP for a smaller lossless-ish file, or JPG for the smallest download. JPG output is encoded at high quality (-q:v 2).

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool image-watermark-tile 'url=https://example.com/input' 'text=SAMPLE' 'font_size=32' 'color=#ffffff' 'opacity=0.3' 'angle=30' 'columns=4' 'rows=5' 'pattern=brick' 'outline=true' 'format=keep'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/image-watermark-tile/?url=https://example.com/input&text=SAMPLE&font_size=32&color=%23ffffff&opacity=0.3&angle=30&columns=4&rows=5&pattern=brick&outline=true&format=keep

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.