Use CSS background-image
style on a <div>
instead of an img
tag. Since CSS backgrounds don't respond to "right-click..Properties" like img
tags do, a casual viewer won't know the image location from right-click (although it will be visible via "view source").
If you want to prevent view-source exposure too, you can also obfuscate one step further by pointing the background-image
to a URL on your site which then redirects to the image you want. If you do this, then the only way the user will know where the image came from is to use Fiddler, Firebug, or another tool which can actually dig into the DOM or the HTTP stream. This won't perform as well as the CSS-only approach, but it's pretty cheap since you won't be tying up a thread on your server waiting for the remote server to respond.
BTW, if you're also concerned about the target site being annoyed that you're borrowing their content, be aware that the HTTP Referer:
header of clients will let the target site the URL of your site that is "borrowing" the image. It will be easy for them to cut you off if they so desire by blocking all requests from your referring site. You can of course get around this (e.g. by requesting the pages from your own client on your server) but then the site can just look up your IP addresses and block you. Moral of the story: if you want to "borrow" content from another site, keep it low-key and low-volume, because if you attract their attention you'll get banned.
Or (this is the ideal) contact the site and let them know what you're doing and work out an arrangement so they won't block you if your site becomes popular!