【发布时间】:2017-03-04 06:16:38
【问题描述】:
当您在网站上展示图片时,水印或实现的徽标很烦人,但我也担心未经许可使用图片。
你们中的许多人可能知道 9gag 在 2016 年之前一直在使用它,当您从网站保存图片时,它会在保存的图片中添加 9gag 徽标。
老实说,我想不出任何方法来实现它。
我正在使用我的自定义 ASP.Net MVC 5 CMS,但任何前端解决方案都将受到高度赞赏。
编辑
根据 W3,我们可以通过 JavaScript 在画布中重新创建图像:
window.onload = function() {
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
ctx.drawImage(img,10,10);
};
由于我正在重绘图像,我认为理论上应该有一种方法可以合并两个图像。有没有办法截取进程并添加logo或水印?
【问题讨论】:
-
你是说你想在你的页面中显示图像没有水印,但是如果用户试图保存图像,你会以某种方式添加水印?我认为这是不可能的。
-
前端解决方案将涉及
canvas- 您所描述的内容听起来可能,但很容易被规避,这可能就是您所说的 9gag 这样做的原因那 -
如果您尝试使用 canvas 元素添加水印,这意味着您仍然需要将原始图像下载到浏览器,这意味着用户可以找出 URL 并直接下载。或者将其从浏览器缓存中复制出来。或者禁用你的 JS。等等。
-
@nnnnnn 是的,我知道这是不可能的,除非图像文件本身带有物理水印(这就是股票照片网站这样做的原因)但我们每天都在谈论 John Doe,可能对 DOM 和控制台一无所知等等。也可以用 javascript 合并两个图像对其他应用程序很有用。
标签: javascript jquery html css asp.net-mvc