Computer Question (Probably A Silly One, At That)

Posed to me by a friend:

“Is it possible to modify digital pictures so they are viewable, but not printable?”

My instinct says “Of course not…if you can view it, you can print it – and even if there were some way to do this, it’d probably be easily defeatable”.

So, any ideas, anyone?

I think your instinct is right. I know of some javascript that makes it harder for a novice to take your pictures, and some other methods that make it less worthwhile to take your friends pictures are watermarks, and also use smaller images.
The best method I know of is to cover your image with another “transparent” layer that if they right click on will take the transparent layer thief.gif rather then yourpic.jpg (Sorry not good at explaining) but still the picture is not safe from someone who really wants it.

I am sure someone with more knowledge will be along shortly.

At least conceptually, the easy way is to display the image on your screen, then capture the displayed image to a file.

Another method is to chop the image up into lots of tiny images, so someone wanting to steal it has to download each image and then reassemble them. However, that still doesn’t defeat screen captures.

Oh, sorry…should’ve been more specific on this – we’re not talking about web-based images. I don’t know the particulars of why he wants to do this, but he wants to be able to loan a CD filled with his wedding pics to someone who can then view them, but not be able to print them.

My thought is that once the person has the CD, they can then copy the images and there’ll be nothing to stop them. Just curious if anyone had perhaps heard of some sort of program or anything that might pull this trick off.

What you’re asking is impossible.

As has been mentioned, anyone that can display the pictures can simply take a screenshot with alt-Print Screen, at which point they “own” the image.

The best you can do is put some kind of watermark, so that anyone who copies the pics will have to deal with that. Of course, they could remove the watermark but at least it’s disuasive (ask any of the porn sites.)

You could make each image into it’s own flash application. This doesn’t prevent the printscreen method but it does stop it from being loaded into any graphics program and printed from there.

Additionally, there are ways of getting around the printscrn method by using DirectDraw. Open up any DVD in Windows Media Player and try doing a screen capture. You’ll find that it’s impossible to save a image of the movie using just printscrn.

In short, you might be able to do it by creating your own, encrypted file format that can only be opened by your provided app which dumps it into a special DirectDraw buffer. There are still ways to get around this but it’s well beyond the means of your average thief. It still doesn’t stop someone from holding a digital camera up to the screen though.

Well, it’s not an all-or-nothing situation. Every level of security you add would probably stop a certain number of users (as opposed to zero security, which would let anybody print the image). But it should be pretty much impossible to stop ALL the users, especially the most determined ones – or, for that matter, anybody with a digital camera.

Nonetheless, here are a few random, not-very-practical ideas along with how they might be defeated:

  1. We’ll ignore anything that can be defeated with a basic PrintScreen because anything that can’t deal with that isn’t worth using. We’ll also ignore analog capture because there’s simply no practical way to stop somebody with a digital camera or a video capture card; but hopefully that’s not as big an issue because the quality usually gets degraded somewhat.

  2. The overlay thing that Shalmanese mentioned. A DirectX-capable capture program like HyperSnap can capture this.

  3. Display one fragment of the image at a time in split-second durations; probably synchronized to monitor refresh rates or something similar. The human eye may still perceive it as one coherent image, but single-frame screencapture programs would only get one particular fragment. However, movie capture programs like FRAPS can be used to record the image over time and the original still image can be recomposed from the fragments in the video.

In other words, it’s sort of like a “chaotic interlacing” that happens too quickly for the eye to notice but still affects single-frame capture utilities.

  1. Make your own bootable CD with a custom Linux distribution that only contains an image viewer and does not print. The actual images on the CD, of course, would have to be encrypted. Can be captured if the CD is booted in an emulated/Virtual PC-type environment.

  2. You might be able to do something with the DPI of monitors vs printers – perhaps somehow use a grid of pixels that only shows up when the image is displayed at one resolution but not another.

This would require customization on a per-device basis and would be easily defeated if they can figure out exactly what DPI to print at. Or perhaps a Virtual PC would also work.

  1. Use some sort of hardware solution. First, you could warp/distort/colorshift the images somehow and then provide special prisms or glasses along with your CD that will let people view the images correctly. The simplest version of this are the red-and-blue 3D images: When viewed without special equipment, the image appears off-focus. When you have a pair of red and blue glasses on, it looks normal.

Or you could bypass the PC altogether and provide your own photo viewing device – something like a simple LCD viewer.

  1. Some whacky combination of the above?

Anyway, all of those options are of dubious effectiveness and they’re certainly not practical. If he’s really that afraid of people printing out his wedding pictures, maybe he should invite them over to his house, strip them naked, hold them at gunpoint and let them briefly view the photos on his computer and then walk them back out the door. For good measure, he should also remove their arms and vocal cords in case they ever try to draw the pictures they saw or describe them to another person. Sometimes physical security is the only way…

I forgot #8: Wait for Microsoft/Intel/whoever’s next-generation system-wide digital rights management. In theory, the entire path from motherboard to monitor will be protected and non-compliant devices will not be able to display or print the image at all. That’s the theory, anyway.

And it still won’t stop somebody with a camera.

      • I was going to mention this, as horribly impractical as it is. Maybe tile the image, and set up a few different DirectDraw buffers and have each buffer display only some of the tiles, and then blink them all in very-rapid succession. You would need to set up your program to force full-screen mode, because DirectDraw in a window defaults to software rendering, last I heard (-version 7? or 8?). In software mode they could just do screen-captures until they got all the pieces…
        ~

If you’d be satisfied with preventing people from making high quality printouts, you could just scale down the images before you distribute them. A picture that’s 400 pixels wide will look OK on the screen, but shoddy on paper compared to the 2000 pixel original.

Yes, this is the standard technique. Distribute low-res pictures. 480x640 will look fine on the screen, but you’re not going to get a decent print out of it. You can also watermark your photos or overlay them with a faint “Draft” or “Property of So-and-So Studios”

Create a .swf from flash. Use ActionScript trapallkeys.

This is good for people who don’t know enough to get a third part screen capture utility.

It won’t stop all parties.

Add the EURion constellation. to your image.

Fascinating! Any idea how many programs implement that system now?

I’m pretty sure Microsoft Paint doesn’t, and it comes with every copy of Windows.

The open source image editor “The GIMP” almost certainly doesn’t implement it. Even if it did, you could always compile it out.

Another method not yet mentioned is to convert the photos into PDF format, encrypt them, and disable printing rights for the file. Our office uses this method to distribute copyrighted CAD drawings to potential clients.

Of course, a PDF still won’t defeat a screen capture but it will make things slightly more inconvenient.

It won’t defeat Dmitry Sklyarov either. :wink: