How to protect the image from being copied?

Well, it is so sad to say that there is no way to protect the images from being copied until the time of writing this post. You may probably tell me that you found a lot of “Image Protection” tools on web. Yeah. I know. I did even tried some of them once. Those tools make people difficult to copy the images from your website. but there are always some sort of hecks for copying images. No matter what tools or technologies you use.

I will tell some attempts that people tried to achieve this goal and the reason why those attempts were failed.

#1. Disabling “Right Click” on webpage by using Javascript.

This is very very old trick and it’s totally useless. Don’t forget “Save As” in File menu. Plus, there are a lot of DOM manipulators (eg: Firebug) to track the path of images.

#2. Adding new transparent image over the actual image

I found some sites (including flickr) that are using this technique to protect their images from being copied. It works for normal users who only knows “Right Click” and “Save Image As”. You can still check the source to get the correct path of actual image that you want. If you are familiar with firebug, you can easily delete the transparent image that you don’t want on the fly.

#3. Using third-part tools for image protection

If you do googling about this a lit bit, you will get a ton of tools advertising that those tools will help you to protect your image from being copied (some even said that those tools are able to protect HTML code too.) Don’t even never spend your money on those tools. I mean it. As I said above, I tried already. I know those tools are not good enough since they have their own limitations. So, don’t waste your money on it.

This fact applied for code protection tool also. Those tools are going to encrypt your webpage and will add a lot of whitespace in your actual source. So, if you check the “View Source” a lit in your browser, you will see plain text or some text you write instead of HTML code. but don’t forget to scroll a lit bit.. You will see goddammed things.. and those tools will eat your bandwidth and it made your visitors to view the web page in slow motion. :)

#4. Putting images in Embedded Object (Flash or ActiveX Object)

I think this is the best way to protect the image so far. but it is possible to download the whole flash file (*.flv) to local machine by using third-party tool or firefox extensions (eg: Download Helper). So, the individual image are safe from being copied but not for flash.

UPDATED (27th August, 2007):

Watermarking (Thanks to mmhan for reminding me about this.)

AFAIK, there are two ways of watermarking. The first way is that putting a watermark simply on the image. This watermark will be visible to everybody. The second way is that putting a invisible watermark on the image by using Steganography.

Yeah. those are the ways that I remember how people tried to protect their images. If you have other ways, don’t hesitate to let me know.

Remember! All images from the webpage are already sent to the temporary internet files of user’s local machine before showing to the web browser. So, user can still copying images from Temporary Internet File folder. And, What about “Print Screen”? :)

So, if you ask me how to protect the image, I would say “don’t do that!” . :)

17 Replies to “How to protect the image from being copied?”

  1. Actually, in Firefox, which is nearing 20% worldwide usage and is a full 1/3rd of European usage (with a few countries nearing 50%) has a simple feature under the Page Info tool that lets you easily see and download any and all media on a page.

    There really is no way to stop people from saving content which already resides on their machines (as is the case with anything the web browser consumes,) and it’s almost a joke to even suggest ways to try.

    – A

  2. Asa, Yeah. you are right.. this is what im talking about…. but I found a lot of questions about this in some forums that I used to participate….. so, i post about that here so that I don’t need to answer again and again… i can simply point to this post… it can save the time of typing and my blog got more traffic.. :)

  3. Well, you’ve forgot to mention one simple and effective way, the watermarking.

    Even though you can’t prevent saving the image, this method will stop “almost” everyone who tries to re-use your image. ;)

  4. Yeah…some use this to protect intellectual property…

    There is also another workaround.
    …some of CMS managers save their contents (including images) in back-end database.
    And dynamically render these BLOB onto browsers.
    It’s NOT supposed to be the complete solution.
    But, it work quite well in some cases.

    ALA contents can be cached in browser , user can bring it back in one way or the other.

  5. @mmhan,

    Yeah. I heard about that.. I missed to add about this in this post.. i will update about that…


    There is also another workaround.
    …some of CMS managers save their contents (including images) in back-end database.
    And dynamically render these BLOB onto browsers.

    Is there any different for user??

    I don’t think it has advantages. Rendering the image directly from the database (src=” or showing image from directory (src=”./images/milk.jpg”) are the same for user. it doesn’t really matter whether dynamic images or static images.. the user can still right-click and save as the image… Feel free to let me know if I miss something here…

    Thank you so much for your comment.. mmhan and RM.

  6. Yes, Thank you for your reply.

    As long as images are rendered, it doesn’t really matter whether dynamic or static images. Generating dynamic images may even cause other processing overhead. It consume much resources for db connection and all that.

    ….dynamically render these BLOB onto browsers.
    It’s NOT supposed to be the complete solution.
    But, it work quite well in some cases.

    In some cases means,

    They can utilize the authentication and authorization features of Database Services if they put their contents in DB. When these are stored in file system,anybody who know (and can access) correct location can retrieve
    more easily.

    If web pages are dedicated only to registered or paid users, they can apply some business logic tightly integrated with DB.

  7. One absolute protection is to
    To replace the image with flash with a parameter of image src and let the flash loads the image from server though it’s not foolproof for screen capture.

  8. Actually, the flash approach is absolutely not foolproof. The image will still be available for saving in Firefox’s Page Info dialog.
    – A

  9. when I tested some flash websites, i only got .swf or .flv in Page Info. I think that it will depend on how people embedded the images in flash file….
    Thanks mmhan and Asa Dotzler..

  10. Hey Mike,

    Long time no visiting to my blog.
    Are you busy with firebug posts?
    I have no idea about that.
    For this useful post, I am so interested in it and also for comments.

    Wish you all the best.

  11. >>Long time no visiting to my blog.

    Yeah. sis… I’m really busy with Firebug tutorial.. I’m trying my best to contribute this tutorial and I’m trying to cover all features of firebug as much as I can..

    another thing is that all free blogging sites (i.e: *, * and etc ) are blocked in my office so I can’t read them.. When I get back home, I was busy with writing abt firebug and other stuffs.. I will visit soon .. sis..

    >>I have no idea about that.

    :) I understand.

    >>For this useful post, I am so interested in it and also for comments.
    Yah.. thks.

  12. My query is on protecting images only, but the area is Silverlight!
    In my app, the images are stored in db & sent to app via wcf.
    As it is not an embedded content, the images gets copied in the local cache. i want to protect these images (no local downloaded)

    One way could be to pass byte[] from wcf, but i am not very sure on that. can you provide some help on that?

Leave a Reply