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!” . :)

ASP.NET: DropDown List problem with IE6

SourceCode Download ~

WebSite7
Hosted by eSnips

Question ~

One member from Codeproject asked ~

Hi all,

There is a small requirement in drop down list. Suppose I have bounded the employee names to the drop down list. Now I am searching for a name “Peter”. So if I press ‘p’ and then ‘e’ it should go to Peter’s name. But it goes to Elizabeth’s name. Is there any solution for that? Could anyone of you please help me on that? I am using .Net version 2.0

Thanks and Regards,
Hariharan C

Solution ~

This issue occurs in Internet Explorer 6 version only. I have tested this issue with the most of browsers (Internet Explorer 7, Firefox 2.0.0.6, Opera 9.2 and Safari 3.0.3 (Windows).) It works fine except IE6. I looked for the solution and I came up with the following code.


var pressedKeyString = "";
var delay = 1000;
var timeID = null;

function move(){
var selectList = document.getElementById('DropDownList1');
var arr = new Array();
var idx = 0;
for(var i = 0; i = pressedKeyString.length){
if(pressedKeyString.toLowerCase() == selectList.options[i].value.substring(0,pressedKeyString.length).toLowerCase()){
selectList.selectedIndex = i;
i=selectList.options.length;
alert(pressedKeyString);
}
}
}
pressedKeyString = "";
}
function foo(e,id){
if(timeID != null)clearTimeout(timeID);
timeID = setTimeout("move();",delay);
var key;
if(window.event) // IE
{
key = e.keyCode
}
else if(e.which) // Netscape/Firefox/Opera
{
key = e.which
}
var pressKey = String.fromCharCode(key);
pressedKeyString += pressKey;
}

The main idea of this code is that we will enable the timer to check whether the user is still typing or not. The timer will get clear as long as the user keep on typing. The character that you typed will keep on appending to the string called pressedKeyString. Note that the select list will be changed automatically on IE6 by default while typing. (Ya, this is what we don’t like). After typing finished (timer will count to 1000 minisecound), then the dropdown list will be changed to the option which is matched with the characters that you enter. (eg: if you type “pe” then dropdown list will select to “Peter”.)

Hope it helps. Feel free to let me know if you have any comment or suggestion. Thanks.

Am I going too far from one topic to another?

Even though this post is written as an explanation of why I’m mixing a lot of things in one blog, it will give some interesting points that helps you to decide whether you should blog the dedicated topics only or mixed things.

Introduction

I was having a conversation with one of my friends about our blogs, blogging and etc last night. He gave me one comment that I’m going too far from one topic to another in my blog. I should probably post the dedicated topic about something. It is not good if I’m posting a lot of different topics in one blog because it made my readers to confuse about what they should expect from my blog. For example, some people may like about programming things. Some may like about Jokes. So, those people who like about programming might not wants to see the jokes all the time because they are not coming to my blog for having fun. They wanna get something useful for their technical expertise. The same way might happen for those who likes about Jokes instead of technical things.

But there are some reasons why I do like that.

1. My blog is based on what is happening in my real life.

Does it sound funny? :) but it’s true. My blog is going as same as how my life’s moving. I don’t mean that those are completely the same but almost. For example, if I’m working for ASP.NET 1.1 then the most of posts that I wrote at that time may be about ASP.NET 1.1 only. If I’m working with SmartClient or .NET 2.0 then the most of topics that you read here may probably be about SmartClient or .NET 2.0.

There might be some cases that I may post about some topics that I currently interest (eg: SliverLight, Orcas, LINQ and etc) even I’m not working with those technologies.

Plus, I may express my feeling in my blog (eg: like that) too. ( It make me feel better. u know?)

And it is also possible that you can know whether I’m very busy or not by checking the upcoming posts of my blog. :)

2. My blog is a place where I keep all of my favorite things.

This is the another facts why I don’t launch the dedicated blog. My blog is not a blog about blogging (eg: problogger or john chow or lorelle or etc). My blog is not a blog about technical website (eg: CodeProject). My blog is just a place where I keep all of my favorite things in one place. My favorite things could be Jokes, some pieces of codes, opensouce tools, thoughts, blogging tips. It could be anything. I’m not sure whether you are gonna like them all as like me but I would say that those things are pretty cool. (at least for me. )

3. Time is not enough to manage the multiple blogs.

Time is an issue. Everybody has their own life to serve. So, we have to work for serving our life. Sometimes, I felt very tired when I come back to my home after work. At that day, I don’t even wanna boot my computer and I don’t want to think about technical things. so, it’s sad to say that I’m not able to come up with new post everyday.

While running within very short time, it’s not easy for me to launch the dedicated blogs (eg: blog for Joke, blog for Ajax, blog for blogging and etc)? My time will be over while trying to log-in in many blogs.

Conclusion

Yeah. Those are the reasons why I’m blogging the different topics in one blog. But I believe that it will be more convenience for readers to read the dedicated blog instead of aside blog like mine. Because things that they expect and things that is coming up will be the same. So my conclusion is that the dedicated blog are good for reader but not for blogger. What do you say??