【发布时间】:2012-01-28 19:09:36
【问题描述】:
我想知道如何通过右键单击我网页上的图像来防止人们将图像另存为..。
我正在考虑禁用右键单击,但似乎我必须编写 javascript 代码。有没有简单的方法可以做到这一点?
【问题讨论】:
-
即使图片无法下载,有什么能阻止用户在查看页面时截屏然后从截屏中截取图片?
我想知道如何通过右键单击我网页上的图像来防止人们将图像另存为..。
我正在考虑禁用右键单击,但似乎我必须编写 javascript 代码。有没有简单的方法可以做到这一点?
【问题讨论】:
简单的答案是“你不能那样做”。您可能可以在服务器端放置一些东西,以便在提供图像之前检查引用者,但即使这样也不能 100% 保证。此外,即使您确实设法阻止了这种情况,也没有什么能阻止有人截取浏览器页面然后从中裁剪图像。
我认为更好的方法是对图像进行服务器端 url 重写和处理,以添加某种可见的水印,识别您拥有的图像,并在 EXIF 信息中保存适当的版权信息。
【讨论】:
您可以制作一个与图像大小和高度相同的 div,然后您可以将图像设置为该 div 的背景。这将阻止人们直接下载图像,但他们仍然可以输入网址并从那里下载。我自己在这里做了一个教程:http://www.andytechguy.com/tutorials/html/how_to_nodownload/
【讨论】:
只要图像 URL 在源代码中,就可以使用 unix 命令 wget 或类似命令下载图像。但是,我不是 javascript 专家,但我相信您可以从文本文件中读取照片的位置,而不是在 HTML 中硬编码 URL。然后,您可以将该文本文件配置为在尝试使用您使用的任何 Web 服务器查看时返回 403(权限被拒绝)。但这仍然不会停止屏幕截图。
类似这样的:
<img src="some javascript to read text file">
然后让文本文件包含:
/path/to/obscurely/named/photo.png
【讨论】:
是的,这真的不可能。另一种选择是使用 Lightroom 或其他工具批量添加水印。水印是我知道的几乎可以完全保护您的唯一选项,因为除非它们是 Photoshop 中的向导,否则即使是屏幕截图的想法也是不可能的。
总之,我认为 Lightroom 或其他东西是您获得所需内容的最佳和最简单的方法。
【讨论】:
您可以通过将图像格式从 jpg 转换为 svg 来做到这一点...网上有很多转换器,例如 https://convertio.co/jpg-svg/ 在此之后,您将 svg 代码复制并粘贴到您的 html 代码中以替换 jpg。
【讨论】: