I have to admit that an invisible watermark is a cool idea. Almost like science fiction. Turns out that hiding a message inside another text
is not a new idea tho. Goes all the way back to ancient Greece, when waxed tablets were the email technology de jour. Now that we have digital media we have many more ways to secretly embed messages into written text, images and video, and even digitized voice and music. It's called steganography and it's definitely not science fiction.
Still, embedding a bit of text right into your image (into the pixels themselves, not added as metadata inside the image file) such that (1) it can't be seen when viewed under normal conditions, (2) it can be made visible using a detection process, and (3) it will survive common image changes (like resizing, cropping, tone and color adjustments, etc)… that does sound like black magic. In this article I'll explain how you can perform this kind of digital alchemy using Photoshop and software from vendors other than Adobe.
Note that watermarking an image is not the same as copyrighting an image, but it is a way to assert ownership and your copyright. Refer to my article, LinkTo:You clicked it, you own it, now what? for more info on image copyright. Keep reading if you want to invisibly watermark images, and understand what those 3rd party plug-ins can do for you.
Invisible Watermark using only Photoshop
You don't have to purchase any 3rd party software to embed an invisible watermark into your images. You can do it right in Photoshop, but it will take you longer and the watermark is not as robust as using software designed for the task. The technique works because digital color images are composed of three complete monochromatic images (one red, one green, one blue); and human vision is least sensitive to blue light. Under normal viewing conditions, we see all three R,G,B images superimposed over one another, and the blending of different shades of those primary colors gives us the rainbow of colors we see in color images. But using image editing programs like Photoshop, we can view and manipulate the R,G,B images (and Photoshop calls these channels
) independently, and stealthily embed a (hopefully) invisible message into just the blue channel, that won't be seen when all three channels are viewed simultaneously, but will be clearly visible when the blue channel is viewed separately. That's it in a nutshell. The rest of this section explains how to do it in Photoshop (and Photoshop Elements).
Step 1: Add a type layer[1] with your secret message[2]. Figure 1 shows an example. Pick an area of the image that's bright and complex. Avoid areas that are dark or uniform or smooth. Just guess at a good area, and you can move the text around to try different areas when you tune
the watermark (in step 5 below).
Step 2: Bring up the layer styles dialog[3]> (figure 2) for the new type layer, and (1) set the fill opacity to zero, (2) uncheck the R and G channels, and (3) check both the Inner Shadow
and Outer Glow
styles. Ideally, the watermark text is now invisible as shown in figure 3 (and you'll just have to trust me that it's in there!)
That may be all you have to do, but this technique is dependent on the image content. Your goal is to fine-tune the watermark so it's invisible when viewed normally, but clearly visible when viewed as described in next step.
Step 3: To test / detect the watermark, bring up the Photoshop Channels
window (figure 4), and click-off the eyeball on all channels except for the blue one (figure 5). Ideally the formerly invisible message is now clearly visible in the b/w[4] version, like the one shown in figure 6.
If you're happy with the result, you're done. You can save the file, scale it up or down, create a JPEG file for distribution, etc.
Step 4: To detect the watermark, in any image you created by steps 1,2,3 (above), or any image derived from one of those images, just use the viewing procedure described in step 3. You should see the watermark in the blue channel. You can make the watermark more visible by enhancing the contrast of the displayed blue channel using a Levels
adjustment layer[5]. Figure 7 shows such an adjustment layer. Just drag those little sliders beneath the histogram in the Levels adjustment to vary the contrast. Figure 8 shows the result of this kind of adjustment. Note this viewing procedure does not change the image pixels, just the viewing conditions for detecting the watermark. It's something like looking at objects under infrared or black light… they look different but the object has not been changed.
OK, so what could go wrong? That watermark may be too strong
: slightly or partially visible when the image is viewed normally, or you may see undesirable artifacts. Or the watermark may be too weak
: not legible when the image is viewed as in step 4.
Step 5: To fine-turn
the strength
of the watermark, bring up the layer stylers dialog for your Type layer. Highlight the Inner Shadow
style. I like to turn off Use Global Light
, set the Angle to 135, and change the Blend Mode from Multiply to Darken (esp if the watermark was too strong). The shadow color should be black. Figure 9 shows these adjustments. Now drag the Opacity slider left and right to vary the strength of the dark inner tones of the watermark text. You'll want to check this both when viewing the combined R,G,B channels (for invisibility), and the blue channel alone (for detectability).
To fine-tune the light outer tones of the watermark, highlight the Outer Glow
style, and adjust the Opacity slider to strengthen or weaken the watermark. You can also change the blend mode from Screen
to Lighten
to weaken the watermark. The glow color should be white. Figure 10 shows these adjustments.
Lastly you may want to move[6] the text to a different part of the image where it's more easily disguised. Note that you can also shrink or enlarge the text[7] message so it fits better into a good spot in the image.
That's it. The best settings will depend on the image, and it's not guaranteed to work well for all images. It has worked for me on the images I've tried however.
3rd Party Software
Willing to add another program into your image workflow? If so there are programs designed to embed and detect invisible watermarks. I tested the three that looked most promising as of February 2016, and report my results below. I'll continue to use the same example image throughout this article.
Digimarc – The Heavy Artillery
Want an industrial-strength invisible watermark? The best one I know of comes from the Digimarc Corporation. Their plug-in used to be bundled right into Photoshop, but was dropped from the CC 2015 release. You can still purchase it from Digimarc, and install it yourself. Why use Digimarc? As far as I can tell it's the best and easiest way to get a durable and invisible watermark into your image. Here's how it works:
- You go to the Digimarc website, and buy a subscription. As of Feb.2016, you could pay $49 for a one-year subscription that lets you watermark up to 1000 images. You also get a 6-digit number when you sign-up that's your unique Digimarc ID. That number is registered with the Digimarc Corportation along with your name and account info.
- You download and install the Digimarc plug-ins[8]
- Prepare an image for distribution and just before you save the final JPEG, run Digimarc's Photoshop plug-in. Try to get it right. If you watermark the image, then discover a flaw and fix it, you'll need to watermark it again (and use up another one of 1000 marks you bought).
- You can not embed arbitrary text using Digimarc's plug-in. The basic option embeds the information listed below:
- Your Digimarc ID (obtained in step 1 above)
- The image copyright year (for example 2016) or range of years (for example 2010-2016).
- Restricted Use – yes or no. Yes indicates that the image is copyrighted and subject to restricted use. Say yes.
- Do Not Copy – yes or no. Yes indicates the image's creator and/or distributor has specified that the image should not be copied without permission. Say yes.
- Adult Content – yes or no. Yes indicates the image contains adult content. This one is up to you.
There's a bit of a trade-off about exactly when to run the Digimarc plug-in in your image workflow. It's great that it runs as a Photoshop plug-in, but it only works on 8-bit images. And to get the maximum-strength watermark, you'd run it as the last step before saving the JPEG image for distribution (after it's been converted to an 8-bit sRGB image and sized for it's intended use). The down-side of this approach is you have to watermark each derivative copy of the image. For example, my website needs each image in two resolutions, and if I want to print the image and post it on a social media website, that's two more derivative JPEGs. That would be 4 watermarks on the same image, and I only get to mark 1000 per subscription fee.
Since Digimarc's watermark is pretty durable (they claim it survives scaling down to 25% and up to 200%), there is an alternative workflow. After I've done all my creative work on the image, I can flatten the Photoshop layers, convert the image to 8-bit sRGB, watermark it, and save it as a PSD (without any JPEG compression). Think of it as the watermarked master copy
. From that master copy I can resize and save derivative JPEG images, and all of them will have a strong[9] watermark.
Digimark publishes a Best Practices
guide that claims their watermark will survive scaling down to 25% and up to 200%, cropping down to 256x256 pixels, rotation thru any angle, and JPEG compression up to 10X to 20X[10]. I thought that I read that it would even survive printing and rescanning, but I can't verify that claim as I write this article.
Naturally I was curious about how the Digimarc code works. A few quick Google searches turned-up nothing, and a more scholarly search turned-up papers whose mathematics would take some time to understand. So I did a simple experiment as shown in figure 11. The bottom layer in our example is watermarked with Digimarc's plug-in. The layer above it is the exact same image but without the watermark. I set the blend mode of the unmarked layer to Difference
so the resulting (composite) image would be the watermarked layer minus the unmarked layer. If the two layers were identical, the resulting image would be totally black. And while it did indeed look black at first, when I magnified the brightness of the difference using the Curves adjustment layer shown in figure 11, the result looks like blue noise, distributed throughout the image. This experiment and the claim[11] that the watermarks survives cropping down to 256x256 suggests:
- the watermark is repeated throughout the image (in blocks no larger than 256 pixels square), and not just at one spot as it was with the
Photoshop Only
technique (described above); and - the message is embedded using a mathematical encoding, and not simply as rasterized text as it was with the
Photoshop Only
technique (described above).
With the information gained from my first experiment, I went on to try to break
the watermark, by adding noise into the blue channel, using de-noise software on the entire image, scaling and rotating the image, etc. I found that I had to do serious visual damage (for example significant blur) to the overall image to render the watermark un-detectable. Impressive.
While the Digimarc code seems to work well, there were some negatives for me:
- I could not embed a text message of my choosing… only my 6-digit Digimarc ID number, the copyright year(s), and some on/off bits with pre-defined meanings.
- The plug-in was hard to install because the Digimarc website led me to first install old versions of the code that did not work. I had to dig to find the new code, and there was no slick installer. I had to un-zip the code and move it into the right place manually.
- The Digimarc company seems to be focused on a newer product called
invisible barcodes
to be used for product packaging, brochures, mobile apps, etc. In other words, their business interest has waned for guys like me who spend $49/yr for a non-commercial application. I say that because it's hard to find the product that I wanted on their website. Loads of info on barcodes and mobile apps, but you have to really dig to find the legacy product now calledGuardian
. - Digimarc has an online service that scans the internet for images with your watermark, but it can't scan password-protected websites. Since most of the images on the internet are on the popular social media sites which are password-protected (we're talking Facebook, Flickr, Instagram, etc), this service can't scan most of the images on the internet. This does not seem very useful to me.
That said, their product works and works better than anything else I could find. Let me net-out the pro's and con's:
- + the most durable invisible watermark that I could find
- - only embeds a Digimarc-assigned ID number (and not a text string of my choice)
- + runs as a Photoshop plug-in
- - only works on 8-bit images
- - limited to 1000 marked images per subscription fee
- - may not be an important product for the Digimarc Corp.
SignMyImage – 15 Euros
SignMyImage is an inexpensive, standalone program that inserts and detects an invisible watermark. Figure 12 shows SignMyImage inserting an invisible watermark into our test image. And while it allows you to embed a 10-character text message of your choosing, it's not as durable as Digimarc's watermark. I was able to defeat if by opening the watermarked image in Photoshop and re-saving it (without changing anything) using a JPEG compression of 7 (the high end of the medium range in the Photoshop save dialog). That re-compressed file lost some of the sharpness of the original image, in addition to the invisible watermark. This is bad news, because that's the kind of change a person could make without any intention of removing the watermark. They just edit your image and save it with a medium-level of compression.
I also discovered that I could defeat the watermark by rotating the image slightly, and then back to it's original position, then saving with as little compression as possible. Cropping also defeated the watermark more easily that Digimarc's because SignMyImage does not put the watermark everywhere in the image. In fact when compared[12] the marked and unmarked versions of the image in Photoshop (figure 13) it appears to be doing something like Digimarc but without the replication throughout the image and with coarser granularity.
Here's the pro's and con's as I see them:
- + inexpensive one-time purchase (no subscription fee)
- + no limit on the number of images to be marked
- - watermark is not as durable as Digimarc's
- + reads and writes uncompressed (TIFF) images
- - standalone program (not integrated with Photoshop or Lightroom)
- - no batch-mode of operation
Icemark - $50
Icemark is another (relatively) inexpensive, standalone program that inserts and detects an invisible watermark. Figure 13 shows Icemark detecting an invisible watermark in our test image. While it offers more features (like 16-bit PSD files, and 28-character embedded text messages), it's watermarks appear to be just as fragile as those embedded by SignMyImage. I was able to defeat Icemark's watermark by simply opening the watermarked image (a PSD file in this case) in Photoshop, making no edits to the image, and saving it as a JPEG file using a compression of 7 (the high end of the medium range in the Photoshop save dialog). Once again, a naive editor of your watermarked image can inadvertently remove the watermark using a normal edit and save procedure. In another test, a modest crop of my test image also defeated Icemark's watermark.
Here's the pro's and con's as I see them:
- + relatively inexpensive one-time purchase (no subscription fee)
- + no limit on the number of images to be marked
- - watermark is not as durable as Digimarc's
- + embeds a 28-character string of my choice as the watermark
- + reads and writes uncompressed (TIFF and PSD) images
- - standalone program (not integrated with Photoshop or Lightroom)
- + batch-mode of operation
The Bottom Line
Should you bother with invisible watermarks? While none of the techniques and programs discussed in this article are bullet-proof, any one of them will identify an unmodified version of your image, and Digimarc will not only stop inadvertent removal… it effectively thwarted my more concerted attempts to remove the watermark. And now that you understand the strengths and weaknesses of these alternatives, you make the call. We live in interesting times!
Sincerely yours,
[1] If you're unfamiliar with Photoshop's Type tool, just google photoshop how to add text
for a full explanation.
[2] In this example I rotated the text using the Free Transform
tool in Photoshop. Note that you can type the copyright symbol using option-G on a Mac, and ALT-0196 on Windows (for a more complete explanation of ALT-codes on windows, just google windows how to type copyright symbol
.)
[3] Lots of ways to bring up the layer styles dialog, but one way is to highlight the layer in the layers windows, then on Photoshop's menu bar (at the top ov the screen) pick Layer / Layer Style / Blending Options…
[4] Why is the image b/w and not blue, since we're looking at the blue channel? Since the blue channel is just a monochromatic image, Photoshop shows it to us using shades of gray (instead of shades of blue) so we can see it more clearly In fact the R,G,B channels are all monochromatic images, and get colored only when software interprets them using the agreements established by the image file format (for example, JPEG).
[5] If you don't know how to add a Levels adjustment layer, google photoshop levels adjustment layer
.
[6] Highlight the text layer, then use the Move
tool to drag the text around.
[7] You can change the font size or just transform the layer. Google for photoshop scale text layer
.
[8] Digimarc's website has old plug-ins that did not work for me (sigh), and another page with new plug-ins that did work for me. The ones that worked are at this link: http://payoff.digimarc.com/dgfi-photoshop/updates.html
[9] The Digimarc detection software includes signal strength
meter to report the health of the embedded watermark.
[10] The guide explains that the max compression depends on the image content.
[11] I tested this claim by cropping the sample image to 300 pixels square, and the watermark was intact.
[12] I used the same comparison technique as I did for the Digimarc image: marked image minus the unmarked image, then amplified the difference. What's unexpected and still unexplained in this comparison are the detailed changes to the dark areas of the image, where subtle shadow detail has been lost. The blue grid of dots
is obviously the watermark. All of those other changes look suspiciously like a bug in the program to me.













