web图片加水印

0 篇文章 0 订阅

在前端给图片加水印的方法有很多种:

法一:js+canvas,使用H5新增元素canvas(画布)加水印。

使用此方法,用户可以在页面上自定义水印内容

代码如下

<body>
	<canvas id="shuiyinTest" width="500" height="500"></canvas>
        <!--画布,图片放在此处-->
	<div>
	    <input id="shuiyinText" value="" type="text" />
	    <button id="shuiyinBtn" type="button"> 点击添加水印</button>
	</div>
</body>
<script>
     //加水印方法,参数1:画布;参数2:图片
     function shuiyin(canvasid, imgurl) {
         var img = new Image;//定义一个图片
         img.src = imgurl;//获取图片
         img.onload = function() {//图片被加载到页面时执行
             var canvas = document.getElementById(canvasid);//通过id寻找canvas元素
             var ctx = canvas.getContext("2d");//创建context对象
             ctx.drawImage(img, 0, 0);//将图片放到画布上,从左上角(0,0)开始
             ctx.font = "14px 微软雅黑";//水印的字号,字体
             ctx.fillStyle = "rgba(252,255,255,0.8)"; //水印的颜色
             //按钮被点击时执行
            document.getElementById("shuiyinBtn").onclick = function() {
                //获取用户输入的值
	        var addtext = document.getElementById("shuiyinText").value;
                ctx.fillText(addtext, 10, 50); //选择位置,添加水印
            }
         }
     }
     //执行函数,传入画布id和图片
     shuiyin("shuiyinTest", "source.png");
</script>

页面效果如下:


法二:node,使用node.js给图片加水印。

此方法类似于将一个图片叠加到另一个图片上。

 1)准备工作:

       首先,确保你本地已经安装好了node环境。

       然后,我们进行图像编辑操作需要用到一个Node.js的库:images。这个库的地址是:https://github.com/zhangyuanwei/node-images,作者定义它为 “Node.js轻量级跨平台图像编解码库” ,并提供了一系列接口。

      我们要做的首先是安装images库:打开命令行并定位到项目所在处,并输入代码如下:

 npm install images

项目文件夹结构如下:

其中node_modules中包含了下载的images库;jiashuiyin.js中是主要代码;source.png为原图片;water_logo.png为水印内容。


2)代码:

jiashuiyin.js中的代码如下:

var images = require('images');
var path = require('path');
var watermarkImg = images('water_logo.png');
var sourceImg = images('source.png');
// 比如放置在右下角,先获取原图的尺寸和水印图片尺寸
var sWidth = sourceImg.width();
var sHeight = sourceImg.height();
var wmWidth = watermarkImg.width();
var wmHeight = watermarkImg.height();
images(sourceImg)
// 设置绘制的坐标位置,右下角距离 40px
.draw(watermarkImg, sWidth - wmWidth - 40, sHeight - wmHeight - 40)
// 保存格式会自动识别
.save('saveimg.png');

3)运行jiashuiyin.js

在此项目文件夹处打开命令行,输入node jiashuiyin.js;回车。此时,文件夹中会多一个saveimg.png图片,此图片就是加水印后的图片。

注:本人为JS实习生一枚,不断学习,不断进步,欢迎各位前辈批评指教。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值