is there a gallery app or code that will show image that has been uploaded in an certain directory and it will be shown normally but when people download it , it will put a watermark in it
Any advice is welcome
It is possible but it's pretty pointless if your rendering the original image which I'll explain. If your rendering the original image then this can be saved using:
Right Click Save As..
Firebug inspect element (obtain url)
Using firebug they could obtain the URL of the image and download it that way, of course you could disable direct access to the page but again this doesn't stop people as they can move onto the next method.
There is absolutely no way you can stop people using the print screen button or capture software and importing the image into their favorite image editor.
Most browsers as you know will cache content this includes images so even if you stop right clicking and so forth they could always obtain the image though the cache.
@Itai is absolutely bang on that you would need to view a lower resolution of the original image since there's no way you could stop it. There is a post on how to force downloads of JPG using PHP here: http://stackoverflow.com/questions/5648967/force-download-image
No. Although you can do play some tricks, this is not entirely possible. What you must know is that viewing an image is downloading it. For an image to be viewed, it has to be at that time on the viewer's computer. When a browser saves an image it may or may not send a request back to the server. Ideally, it simply saves the image as it was downloaded and shown to the user which avoids consuming bandwidth twice for the same image.
On solution is to simply offer images in watermarked and unwatermarked version. The watermarked version then would be the largest version available and linked to with the disposition header so that it gets downloaded when clicked on. The unwatermarked version then goes show as part of your web page but with a lower resolution. This can be setup automatically and generated automatically via PHP or other server-side technology with image processing ability.