保护你的在线图片被他人copy的方法
Protecting images online is a difficult, almost impossible, mission to accomplish. At the end, the image is there and a "print screenshot" command can grab it & no way to stop this.
保护你的在线图片有很多种方法,好比禁止右键点击,把图片用作背景,增加水印等等。
下面就详细讨论介绍一下:
隐藏图片
在图片上加空白图片
这个方法能让图片无法被接触到,除非有人检查源代码。
你可以将图片用作背景,然后在其上放上同样大小的空白图片以遮挡。
例子:
<div id="image1" style="background-image: url(originalImage.jpg);">
<img src="blank.gif" height="250px" width="300px">
</div>
于是,当有人用右键选择保存图片时,只能获得空白图片。
这还有两个javascrit插件使用相同方法:
自动将图片切片
Super Simple Image Tiles
这是个十分有效的图片保护方法。
一个图片被自动切成多个片段,看起来仍然是一整幅图。
但这个方法也有缺点:
- 需要多次向服务器发出请求
- 你将不得不存储更多的图片
使用水印(原图带有)
为图片加入水印是个保护图片的好办法。
可是缺点有:
- 图片无法被清晰展示(其上总有一个水印!)
- 可以下载下来修改
不过至少原图是没办法搞到了。
这里有些在线水印制作应用:
PicMarkr
我介绍过的的一个免费在线水印制作应用,可以从flickr中提取图片加上水印。
WatermarkTool
另一个有用的免费在线水印制作应用。
也很好用。
使用水印(服务器端生成)
也可以在服务器端为你的图片加上水印,这样你就不用一幅幅的修改了
这里有些有用的库与例子:
Asido: PHP 图片处理库
Asido is a PHP image processing library that can work with GD2, Magick Wand & Image Magick.
这里 有Asido的详细介绍.
PHP 方案:
- Put watermark on images using PHP
- Watermark your images with PHP 5 and GD
- Watermark images on the fly in PHP
ASP.NET 方案:
- Thumbnail and watermark images on the fly with ASP.NET
- Watermarking Images in ASP.NET with an HttpHandler
- CoolWatermark (付费)
Ruby 方案:
用Flash来展示图片
swfIR
swfIR把图片用Flash展示,这样右键保存就不行了。同时还能用css控制图片的属性。
基于浏览器的保护
禁止右键点击
用javascrit禁用右键是保护图片的最好方法之一,但完全禁用右键会给你的用户带来不好的影响,比如打印,复制等等
也许用只禁保存图片一种功能的jQuery 插件会很有用。
禁用 IE6 图片工具条
当鼠标在图片上悬浮时,IE6的图片工具条就会出现,而且带有保存图片功能。这也能被禁用。
在head 标记内加入下面的代码。
<meta http-equiv="imagetoolbar" content="no">
你还能想到其他方法吗?