Images & Media

Protect an image without opening a photo editor

Overlay a logo, a line of text, or both, at render time. Configure it once on the schema and the unmarked original stops being reachable through an image URL.

Watermarking in Total CMS is part of ImageWorks, so it happens on the server as an image is rendered rather than in a photo editor before upload. The original file stays clean on disk, the marked version is what gets served, and it is cached like any other transformation.

There are two kinds of mark and they can be used together. An image watermark overlays another file: mark names it, markw and markh size it in pixels or as a percentage such as 15w, markpos places it in one of nine positions, and markpad and markalpha handle the inset and the opacity. A text watermark renders type directly onto the image with marktext, controlled by size, colour, an optional background colour, padding, rotation angle, maximum width and transparency. Fonts are TTF or OTF files uploaded to the watermark-fonts depot; the default is Roboto Regular.

Passing those parameters per call is fine for a one-off. Setting them on the schema is what turns a watermark into protection rather than decoration. Put a watermark block in the property's settings and two things change. First, the mark applies even when the URL asks for nothing — a parameter-free image URL normally returns the untouched original, and that shortcut is skipped, so there is no URL that yields a clean file. Second, schema settings are merged after anything in the query string, so a visitor cannot weaken, move or remove the mark by editing the URL.

Marking every derivative is rarely what you want, because a watermark stamped across a 150-pixel thumbnail is just ugly. The limit setting is a pixel threshold: renders below it come back clean, renders above it are marked, and a request with no dimensions at all — the one asking for the original — counts as over the limit rather than under it.

Watermark settings follow the same three-level override hierarchy as the rest of the image configuration: schema, then collection, then per-object. A stock photography collection can carry a heavier mark than the rest of the site, and one particular image can be handled differently, without a template change anywhere.

What you get

Logo, text, or both

mark overlays an image file; marktext renders type directly onto the image. Position, size, padding, angle and opacity are all parameters.

Custom fonts

Upload TTF or OTF files to the watermark-fonts depot and name one with marktextfont. Roboto Regular is used when you do not.

No clean original

A schema-level watermark applies even to a URL with no parameters, so the unmarked file is not reachable through an image URL.

URL parameters cannot win

Schema settings are merged after the query string, so editing the URL cannot shrink, move or remove the mark.

A size threshold

limit keeps small renders clean while marking anything large enough to be worth taking. A request with no dimensions counts as large.

In practice

One snippet

{{ cms.media.imagePath('photo', {
	w: 1200,
	mark: 'logo.png',
	markw: '15w',
	markpos: 'bottom-right',
	markpad: 20,
	markalpha: 70
}) }}

A logo watermark at fifteen percent of the image width, inset from the bottom-right corner at seventy percent opacity.

FAQ

Common questions

Can someone remove the watermark by editing the URL?

Not when the watermark is set on the schema. Those settings are merged after the query string, so a URL parameter cannot override them, and a URL with no parameters is watermarked rather than returned untouched.

Do thumbnails get watermarked too?

Only if you want them to. The limit setting is a pixel threshold — renders below it come back clean, and anything above it, including a request with no dimensions, is marked.

Can I use my own font?

Yes. Upload TTF or OTF fonts to the watermark-fonts depot and name one with marktextfont. The default font is Roboto Regular.

Which edition includes watermarking?

Image watermarks and text watermarks are both included in Standard and Pro.