Watermarking and/or protecting an image from being downloaded

I would like to automatically watermark and/or protect an image from being downloaded. Does anyone know of an add on that will do this?

View Replies: View Best Answer
12345j replied on at Permalink Best Answer Reply
wagdi replied on at Permalink Reply
Q: Is it possible to have the 'Image Protector' add-on work with any/all of the image gallery add-ons?
Would be useful for photographers wanting to display their work using an image gallery but also have it protected?!
JohntheFish replied on at Permalink Reply
I have not used it, but to do that for everything on a page it looks like you could go back to the jQuery plugin this is based on and do something like:
$(window).on('load', function() {

Such protection is only good for casual right click image thiefs. With the developer console or view-source its easy to just load the jpeg outside of the web page and save it.

Personally, I go for watermarking any image I want to protect before it is uploaded to a web server.
JohntheFish replied on at Permalink Reply
There is scope for a watermarking add-on for C5 that would do this on upload or from the file manager.
wagdi replied on at Permalink Reply
I agree that it would be great to have an option to- 'Enable image protection' on file upload. Auto- adding a spaceball.gif Or auto-watermark?!

Something like flickr- http://www.flickr.com/account/prefs/downloads/?from=privacy...

This can still be overridden- http://labnol.blogspot.co.uk/2007/08/download-flickr-photos-protect... but again, it doesnt really apply to the average user and goes a long a way towards protecting your images.

I agree with you on the watermark but some people hate putting watermarks in the middle of the image because it detracts from the aesthetics of the image. The only other option is to put the watermark in a corner but that leaves scope for cropping out the watermark.

I'm wondering how this kind of thing is handled when using the core commerce + digital downloads. A great example would be when trying to build a stock photo site like http://www.gettyimages.co.uk/ or http://www.shutterstock.com/ where you upload your original image and have the CMS add a watermark automatically to the photo on screen but not on the original.
wagdi replied on at Permalink Reply
It really is only for discouraging the average right-click users. I think 90% of users don't know about the developer console and that's already a huge step in the right direction.

Thanks for that John.
JohntheFish replied on at Permalink Reply
My current offline watermarking code uses Perl and imagemagick for translucent watermarking. I don't currently know enough about GD to know if I can do similar, or if imagemagick is a standard package available with php installations.

If you try the JavaScript, make sure it is disabled in edit mode.
wagdi replied on at Permalink Reply
Thanks for the tip. I remember seeing imagemagick in Drupal a while back.

I found this PHP script but as you know, my knowledge is limited (so I daren't start fiddling around)- http://freeola.com/support/protecting-website-images-with-an-automa...

Here is a drupal module (if it's any use)- http://drupal.org/project/watermark...

And here is a wordpress plugin- http://www.wp-watermark.com/

I really wouldn't know where to start with any of these to get something working for C5. If i could then I would create it as a free add-on; Ideally it would be great if something like this could be integrated into the core. Maybe for now someone with a little more experience, drive (and time) can attempt to find a solution.

I just got a copy of the Concrete5 Beginners Guide by Remo; now I just need to find the time of day to start reading and practising to learn how to create add-ons and packages. The C5 community has been so great and I'd like to contribute some free add-ons to return the favour.

Fingers x'd- watch this space.
vraddons replied on at Permalink Reply
Hi, i've developed an addon that watermarks images and includes a lot of configurable options. You might want to check it out.http://www.concrete5.org/marketplace/addons/vr-watermark/...
Sadu replied on at Permalink Reply
Hi, just to add to the discussion I needed to automatically watermark all images larger than 450px.

This is the solution I came up with....

1. Copy concrete/helpers/image.php into /helpers/image.php
2. Copy and extend the create() function from /concrete/core/helpers/image.php
3. Create a transparent PNG watermark image and place it in /images/watermark.png
4. Insert the following code just after the call to imagecopyresampled near the bottom. Add the following...

if ((($finalWidth > 450) || ($finalHeight > 450))) {
                  $fade = 50;
                  ImageAlphaBlending($image, true);
                  $logoImage = ImageCreateFromPNG(dirname(__FILE__).'/../images/watermark.png'); 
                  $logowidth = ImageSX($logoImage); 
                  $logoheight = ImageSY($logoImage); 
                  if (($im_width > $logowidth) and ($im_height > $logoheight)) {
                    imageCopyMerge($image, $logoImage,($im_width - $logowidth),($im_height - $logoheight),0,0,$logowidth,$logoheight,$fade);

End result is that large images get watermarked, thumbs don't. I'm sure there's a way to get at the URLs for the original images if you know how, but this should watermark everything that getImageThumbnail touches which is most things. The nice thing about watermarking using GD is that you can change your mind about how your watermark looks anytime by tweaking the script and clearing cache - no need to be uploading thousands of updated content images.

Hope this helps someone out there.
wagdi replied on at Permalink Reply
Nice Sadu... thanks for that tip. :)