Start here
All documentation Installing JMGallery Your first gallery How JMGallery stores thingsFilling the library
Adding photos Custom fields The library and bulk editing CSV export and importShowing photos
Building a display Grid, masonry and list Shortcodes The archive page and filters Single item pages The Elementor widgetPro features
Video Captions, backgrounds, hover Protecting your photos Downloads and sellingReference
Settings reference Licences and updates For developers TroubleshootingYou cannot stop a browser downloading what it displays. What you can control is which file it displays, and what is stamped on it.
What is actually possible
Every image on screen has already been downloaded to the visitor’s machine. Right-click blockers are theatre: the file is in the browser cache regardless, and a screenshot defeats all of it anyway.
The useful question is not can they take a copy but is the copy they can take worth less than the one they can buy. That is what these two settings are for.
The preview cap
Settings › Image protection › Largest size shown publicly caps the
lightbox, the item page and the srcset at a registered image size.
Without it, WordPress publishes the untouched original in the srcset of every card
— the exact file a seller does not want given away, sitting in the page source. With it, the
original never appears in the markup at all. Visitors get the preview size; the full file leaves
your site only through a download or a sale.
If an original is smaller than the size you picked, the original is what visitors get. There is nothing larger to serve. That is correct behaviour, not a leak — but it means a library of small files is not protected by this setting.
The cap itself is in the free plugin, because publishing the original is a bug rather than a feature. Choosing the size is free; watermarking is Pro.
Watermarking
Choose Text or Image and JMGallery generates stamped copies of the sizes visitors see, on demand.
| Text | Up to 60 characters, set in the plugin’s bundled typeface. |
|---|---|
| Image | A PNG with transparency, chosen from the Media Library. Its alpha is faded per pixel, so a soft logo stays soft. |
| Position | Nine positions, plus tiled across the whole photo. |
| Opacity | 5 to 100 percent. |
| Size | 5 to 90 percent of the photo’s width, so the mark scales with the image. |
| Margin | 0 to 20 percent, from the edge. |
What is never watermarked
- Your original files. They are read, never written.
- The Media Library, which keeps showing you clean images.
- Downloads and purchases, which are served from the original through a separate route.
- The admin, and anything requested through the REST API.
Stamped copies live in their own folder named after the current settings. Change any watermark setting and the copies are regenerated and the stale folder is removed, so you are never looking at last week’s mark.
A sensible configuration
- Preview size:
large, or a custom size around 1200px if you have registered one. - Watermark: text, bottom right, 45–60 percent opacity, 20–25 percent width.
- Download size: full. See Downloads and selling.
Tiled is worth the intrusion only for proofing galleries a client is choosing from, where the whole point is that the proofs are unusable.
Watermarking needs PHP GD. It is standard, but a host can build it without WebP support, and a photo in a format the server cannot stamp is shown without a watermark. The watermark settings list which formats this server can stamp. Text mode also needs FreeType; without it a built-in font is used and the result is plainer.
Edges and square crops. A gallery that crops photos to squares trims the sides of a landscape photo and the top and bottom of a portrait one, so a mark near any edge can be clipped in the grid even though it is whole on the item page. Centre is the only position that survives every crop; otherwise turn off square-crop for that display.