可能我提的问题有点不可思议,但是我觉得应该是可以实现这样的功能的。是这样的,比如我有一张原图想在上面显示水印效果但是不想破坏原图,但是能又不想要别人看到我的图片的地址,或者是让别人知道地址也不要紧,让别人点击另存为的时候是下载的有水印的图片,而不是原图,好像验证码一样,是动态生成的,但是始终保持原图是背景一样,请问大哥们试过这样的功能没有,给我点提示也可以啊!如果能实现这样的功能给个源码研究一下,谢谢了

解决方案 »

  1.   

    原图上盖一个透明DIV。然后在DIV上加盖一个水印图片。
    这样可以实现不影响原图的情况下加盖水印你说的想法是不可能实现的。你要给用户的是原图加水印拆分的形式显示,但是又要他保存图片的时候是原图加上水印的合并的形式。事实上,当用户查看你的原图时(水印还未盖上去的时候),该图已经到达客户端的浏览器缓存了。用户另存为图片实际上就是浏览器从他的缓存里面把这个图片COPY到用户指定文件夹罢了。所以PHP以及任何动态语言都无法“识别”浏览器的另存为操作。(当然你写一个本地控件来控制的话,那是另一回事)一般的做法是,原图保留一个文件夹,然后把其缩略图盖上水印放在另一个文件夹。用户可以点击某链接下载原图,但是无法直接在浏览器上查看原图。还有一个就是,如果每次用户在下载该图片的时候都要盖上一个水印,服务器的CPU受得了吗?
      

  2.   


    - - 当然可以了。。
    但是这样做有意义么?你要仔细衡量牺牲服务器CPU还是牺牲服务器磁盘空间。
    如果是热门图片,很明显你这样的程序可以让服务器CPU轻松上100%程序不只是功能的实现,你要多想想实际的东西啊。
      

  3.   

    存二张图片吧,一张是原图,一张是有水印的.
    每次请求都加水印,耗 CPU 了
      

  4.   

    你这个问题,我也想过,但我感觉不现实.我之前使用过PS批量添加水印, 我上次有1000多张图片了,做好水印,用PS自动加水印,自己看电视,15分钟左右就加完了,最后通过FTP再上传网站.就OK了.不过,加不加水印不重要.加上反而影响美观