如何提供图像而不必轻松将其从浏览器中保存?

时间:2012-11-14 16:29:05

标签: php javascript apache

我想只在我的网站上展示一组图片。 我想避免最终用户容易保存的可能性。 我知道用户可以使用打印屏幕保存图像,但这不是一种简单的方法,因为之后需要做一些工作。

4 个答案:

答案 0 :(得分:1)

  1. 显示在applet中(例如flash,java)
  2. 使用服务器端操作将图像切割成随机大小的正方形/矩形,并使用客户端表以“组装”格式显示部件
  3. 使用CSS叠加,以便右键单击图像可以获得叠加而不是图像
  4. 放弃,因为如果有人想偷你的形象,他们会。

答案 1 :(得分:1)

不可能100%阻止他们这样做,但你可以让它变得更难。

您可以使用.htaccess规则,该规则不允许直接访问它(必须从您网站的某个网页加载)

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

然后,您可以阻止右键点击您的网站,这样他们就不能单击复制图像。看到: How do I disable right click on my web page?

注意没有好的解决方案。

答案 2 :(得分:1)

你可以:

  • 将其拆分为多个部分(也需要对HTML代码进行一些更改)
  • 在完全透明的gif / png *
  • 上作为css background-image申请
  • 使用gd(在php中)
  • 应用水印
  • 或混合这些

但正如您所写的那样,用户仍然可以使用简单的打印屏幕保存

(*)f.ex:

<img src="blank.gif" style="width: 200px; height: 100px; background-image: url('image.jpg');" />

答案 3 :(得分:1)

可以将图像绘制到画布元素,从而阻止用户使用DOM检查器或右键单击菜单保存图像。但是这种技术不适用于旧浏览器。