Natalie Ashes Team : Web Production Tags : Web Development

Watermarking digital photos

Natalie Ashes Team : Web Production Tags : Web Development

Watermaking digital photos online it extremely important for certain clients, particularly in the art space. We have recently been developing an amazing art gallery website where by the images of the artwork not only are under copy write, they also have local beliefs behind them which prevent them from being miss-used online. When we did a google image search almost every image we found on the current site had been taken and used on other sites so it was imperative that the new site had stricter restrictions on copywriting in place. 

One of our developers spent time researching the best way to watermark digital photos (apparently called Steganography) and this is what he found: 

You can programmatically add a line of text (“This image copyright 2013”) to an image that is invisible to the screen. 

  • We can read that text back from any image using software that we create software.
  • Therefore we can create a page where images can be loaded in and checked to see if they have been copied from the original image on the site. 
  • However, if a user opens that image in Photoshop, resizes it and hits save, the copyright text is lost


Adobe has a thing called XMP that is part of Photoshop. It’s so you can add Copyright, Author etc. when you go File > File Info in Photoshop itself.

  • You can apparently code to this but it looks like a large tasks. There doesn’t appear to be a native .NET implementation. 
  • A user can still remove this text in Photoshop by just clearing the field


The industry standard for doing this kind of work is Digimarc
- http://www.digimarc.com/

  • This is not an API and not something we can access programmatically. It’s an application you use to process images before uploading them to your website. 
  • It is a subscription service. They have a ‘copyright search engine’ that searches the web for images you watermarked using their program. This appears to be the most sophisticated way to do this  however there is no easy way to make it work with your existing CMS.