Professional Documents
Culture Documents
Watermarks
http://www.patrick-wied.at/blog/image-protection-on-the-web
1/11
27/04/2016
Let me ask you a question: Can you enjoy the beautiful sunset in the
image?
If youre not some kind of watermark fetishist I bet you cant.
The Challenge is
1. to preserve the beauty of art online AND
2. to calm down overprotective creators
So my goal was that users should be able to see the full beauty of images
but not be able to steal it.
server response
clientside DOM
Serverside Encryption
Clientside Decryption + Invisible Wall
http://www.patrick-wied.at/blog/image-protection-on-the-web
2/11
27/04/2016
But
If the user knew a few things about HTML Canvas he could get it with
canvas.toDataURL() which returns the canvas data as a base64 encoded
string.
Challenge Accepted!
I thought about the problem constraints again and had an interesting idea.
Displays usually refresh at a rate of ~60 Hertz which is 60 frames per
second, or a frame every 16ms. But our eyes dont send all 60 frames a
second to our brain, they are okay with 24fps to perceive motion, so why not
trick our eyes for good :)
http://www.patrick-wied.at/blog/image-protection-on-the-web
3/11
27/04/2016
The initial idea was to let the image blink with a very short pause interval to
increase the probability of taking a screenshot of the empty image. It kind of
worked, but it wasnt stable, and you do not want to rely on probabilty when
you protect an image. After that, I fortunately I had a nice chat with
@siegpuchbauer and he suggested another great idea:
Sure, there is a downside that people could copy your images, but if you
look at it from a more economic perspective the risk to get a picture stolen
every now and then is totally worth it when every time you upload an image
you increase your international reputation.
http://www.patrick-wied.at/blog/image-protection-on-the-web
4/11
27/04/2016
Related Articles
This trick made visual communication easier for me
Your Portfolio: Choose Wisely
Getting physical with Productivity
How to create Audio-Visualizations with JavaScript & HTML
Leave a reply
47 Comments
Share
Recommend 4
Login
Sort by Best
2 years ago
Valid points. One can also easily remerge the interlaced images in Photoshop using the
'lighten' blend mode to combine the interlaced layers (assuming they're interlaced with
black).
14
Reply Share
6 months ago
Reply Share
pa7
Hi David! have you read the section "Was it all worth it?" that's the part
most commenters missed :( I don't support using any of those
techniques. Also they don't *really* solve the challenge to protect images
SQDB
Reply Share
2 years ago
Nice thought but if I can see it I can copy it. Period. There is no way around that.
16
Reply Share
2 years ago
$ import file.png
*click*
Copied.
Reply Share
2 years ago
http://www.patrick-wied.at/blog/image-protection-on-the-web
5/11
27/04/2016
Reply Share
2 years ago
Reply Share
2 years ago
Reply Share
2 years ago
Sorry:
Reply Share
2 years ago
Reply Share
2 years ago
Reply Share
2 years ago
To be clear, yes, this is degraded, but not much more than what I
see with my eyes in the demo.
http://www.patrick-wied.at/blog/image-protection-on-the-web
6/11
27/04/2016
Tyler Eaves
Reply Share
2 years ago
Gee, not that idiotic and wrong "24 fps is enough for motion" meme. It is 100% wrong.
24fps is marginally acceptable for film because you get REAL, NATURAL, motion blur.
4
Reply Share
pa7
you're right
systemd
Reply Share
2 years ago
As an alternative to the even/odd lines, you could probably make use of CSS's new
blending-mode property and link to an image that only looks correct when it's
underneath a solid layer of black or white in a specific blending mode. Of course, that
would only allow newer browsers to view your image properly.
4
Reply Share
pa7
Hey! the CSS blending-mode technique sounds interesting, but I think this
would rather be an alternative to the Encryption / Decryption technique than
the Interlacing stuff because with CSS blending-mode you can still take a
screenshot
2
Adrian Sinclair
Reply Share
2 years ago
What you are looking to do here is DRM. First of all, don't do it. All the standard
arguments against DRM apply, namely: it degrades the experience for legitimate users,
poses only an obstacle to malicious users, and by necessity can always be
circumvented. But here are some ideas that might work:
Y our interlacing example flickers, there's no doubt about that. I'm not sure if that can
be avoided with javascript, since timeouts are not very accurate, but the biggest source
of flicker is that you chose 24Hz. As you said, (most) monitors refresh at 60Hz (high
end gaming monitors have 120Hz refresh rate and people using TVs as monitors will
have 30Hz). Since 60 is not evenly divisible by 24, occaisionally (every 10 frames, just
under twice per second) the interlacing will get out of sync for a frame and cause a
flicker. Y ou can solve this by using 30Hz refresh rate. For more information, look up
Vsync, which is a somewhat related technique in computer graphics for avoiding
screen tearing.
Interlacing can still be circumvented by taking multiple screenshots and then
superimposing them in an image editor.
A somewhat popular technique for preventing digital piracy of images and videos
see more
...........
Reply Share
2 years ago
Some of these techniques kill your chances of getting traffic from Google Image
Search. Depending on the person they may or may not care. In my case I use a small
subtle watermark on the smaller versions and a more prominent watermark on the
1600px and larger versions. If someone wants to protect their images I suggest they
also register the copyrights on them.
2
Reply Share
randomstuff
2 months ago
the refresh rate kitten makes my head really hurt. plus, you can see weird lines on most
monitors
Reply Share
Sandeep
2 months ago
7/11
27/04/2016
Helen
Reply Share
3 months ago
That's SO cool!
Maad
Reply Share
7 months ago
1. why do you upload pictures and set it visible by everyone if you don't want to share it
? seriously this is the internet !
2. that doesn't work at all, just check information on the page and take the image full
rez without photoshop edit
3. if you really want to show pictures without people can take the picture, know that's
impossible and internet wasn't thinked in that way...
Reply Share
anonymous
9 months ago
This will prevent pepole from downloading the image but they still can tame a
screeshoot of it. It's useless
Reply Share
Truth
10 months ago
If you could figure out a way for a home user to apply this to their Facebook cover
photo, which is public by default, I think it would discourage hackers (who thrive on
volume) enough to move on to more opportunistic targets.
Tushar
Reply Share
a year ago
In the first two demos I edited the HTML in Firebug and removed your overlapping
transparent image. Now I can easily access your original image on my browser
directly.
The interlacing hack only degraded the quality.
Sigh. The problem wasn't solved in the end.
Reply Share
lousy tutorial
a year ago
Y our anti-screenshot interlaced image DID NOT WORK! I snagged your image twice,
once with hypersnap using the rectangle tool and another time with the printscreen
key.
Reply Share
pa7
like almost all other commenters here you didn't get the point of the article. this
is not really a how to that should help you protect your images. It suggests that
it's ridiculous to try it because it's not worth all the hassles.
mutazhameed
Reply Share
a year ago
about screenshots, i just thought how about js key listener and when user presses PrtSc
key the listener sends to clipboard something else like "screw you" text string to override
screenshot. mmmm... but still user can use another sniping tool..
Reply Share
8/11
27/04/2016
Michael Toner
2 years ago
I looked at the interlace pic for 5 seconds and I now have a sore head. I'm not even
joking. I used to suffer from epilepsy and that option is dangerous (remember all those
Japanese school kids that watched a flickery cartoon?).
I'm thinking about the same sort of thing and whilst there's no silver bullet just yet, it
all helps.
1. I'm gonna have a program split the image into smaller squares and produce a html
table featuring the squares. Any browser cache would be painful to assemble.
2. The possiblity of a flash control which loads the image but given that many mobiles
can't handle flash, this might be ruled out.
3. An animated gif (where 256 colors isn't an issue). The first frame would be blank and
appear for the shortest time. If they do save the image, many standard paint programs
and image viewers don't realize its animated and will only show the first frame - a
blank box.
Reply Share
Alexey Zelenkin
2 years ago
Reply Share
Tchael Clark
2 years ago
Can still screenshot the cat. ;) Although that would pose an argument of whether or
not you were meant to prevent a single screenshot from capturing the image or make it
impossible to screenshot the image at all.
If you want image protection on the web, simply don't upload the image. Easiest way!
Best way to protect your art would be to have proof of ownership and use something
like Tineye or Google's reverse image search, periodically search for your own artwork
and threaten to sue people who have stolen it.
Reply Share
fede
2 years ago
Reply Share
Thomas
2 years ago
While copying images without attribution is an issue, I'd say interfering with the
screenshot feature or the image saving feature is a big user experience no-no. Not all
users fail to cite their sources and to strip away basic browser functionality would chase
me away from a given website--even if it is counter-hack-able.
Reply Share
9/11
27/04/2016
dbrower
2 years ago
I have this phone in my pocket that will take pictures of pretty much anything,
including computer screens. The efforts being made here seem a fool's errand, where
the solutions seem much worse than the asserted problem.
Joe
Reply Share
2 years ago
Reply Share
chai guy
2 years ago
the problem with the last solution: 1. it flickers. yes, it really does and it is annoying.
also i wonder about the performance with larger images. and what about larger retina
pictures? 2. what about users that don't have javascript enabled?
Reply Share
Matteo Pagliazzi
2 years ago
Reply Share
mattaustin
2 years ago
Great writeup and some good ideas! On the toDataURL overload the user could just
create an iframe and "barrow" a new reference to the function:
d=
document;d.body.appendChild(document.createElement("iframe")).contentWindow.HTMLCanvasElement.prototype.toDataURL.apply(d.ge
[0]);
(only tested in chrome but should work on others...)
Reply Share
Shelikhoo
2 years ago
Although this kind of technique significantly increased the difficulty of copying image
on the web. As browser can display the the image, specially designed script can do it as
well. Do exactly as browser did, excepted for export image instead of display.
asdf
Reply Share
2 years ago
Doesn't the browser render the images a lot more frequently than the monitor displays
it? So you could interlace it 400 times a second and maybe have 4 images that looked a
lot better.
Reply Share
Henri Tuhola
2 years ago
Antonio
Reply Share
2 years ago
There is no way to prevent your images from being copied by someone determined. The
http://www.patrick-wied.at/blog/image-protection-on-the-web
10/11
27/04/2016
There is no way to prevent your images from being copied by someone determined. The
best you can do is degrade them with watermarks. Otherwise you're just adding slight
annoyance to the person breaking your protection. No way to win that battle.
Reply Share
pa7
you shouldn't even want to fight that battle, it's just not worth it!
What's on the Internet should be fully consumed by users of it. More exposure > more reputation :)
mnault
Reply Share
2 years ago
Whatever you try.. get Chrome, inspect element, then right-click the image from the
debug code and open in new tab. you got your image.
Reply Share
2 years ago
Reply Share
2 years ago
It's all worthless when I can take a screenshot and take the image that way.
Reply Share
pa7
Reply Share
Subscribe
http://www.patrick-wied.at/blog/image-protection-on-the-web
Privacy
11/11