Phillip McGree wrote:
One option that you can do is to have the image in a table cell, but as a background image instead. Someone can still look through the HTML code, work out the exact address for the image and download it direct, but at least people won't be able to drag & drop the image to their own computer. That will stop most people.
Indeed. However, since they're low-res and watermarked, a farly significant question might be "Why bother?". It's not impossible that any "protection" will annoy potential customers more than it helps you. For example, it's entirely possible that the customer is saving the images so they can print a contact sheet for someone who wants to pick which ones to buy. That's what I usually need to do at work, for example. Stopping them from doing that only harms you, since it reduces your chances of making a sale.
The user-hostility aspect might not be too bad with simple means like table backgrounds, but it's certainly an issue with sites that resort to using Java or Flash "image display applets". When I've been looking for artwork in the past I've often just left those in disgust, as they've been slow, frustrating, and often sufficiently unpleasant to use as not to be worth bothering with. Even if you're just using the table background trick you still need to consider what you're actually gaining by stopping people saving the images.
It's also important to remember that every time a user views the image, that's a "download". There's not necessarily any way to distinguish saving an image to disk vs displaying it in the page unless the user-agent explicitly chooses to send some indication in the headers. Moreover, most browsers will simply use the local disk cache if a user saves an image to somewhere, so most likely that won't even appear as a hit on your web logs. That's certainly the case with my tests (Apache 2, no cache control headers set, Mozilla Firefox).
-- Craig Ringer

