摘要
在canvas出现之前,项目中的图片添加水印的需求,必定是后端同学们来处理的,但是canvas出来之后,前端终于可以站出来说,这个需求,交给我来!壮哉我大前端~,上周的任务就是在前端处理水印的效果,这个效果最重要的逻辑其实就几行代码,至于如何优雅的将这些简单的逻辑封装成方法并入公司的前端库,应该是一个仁者见仁智者见智的问题,在此不表。
在canvas出现之前,项目中的图片添加水印的需求,必定是后端同学们来处理的,但是canvas出来之后,前端终于可以站出来说,这个需求,交给我来!壮哉我大前端~,上周的任务就是在前端处理水印的效果,这个效果最重要的逻辑其实就几行代码,至于如何优雅的将这些简单的逻辑封装成方法并入公司的前端库,应该是一个仁者见仁智者见智的问题,在此不表。
好了,废话不表,开始干活。
<canvas id="myCanvas" width="1000" height="500" > Your browser does not support the HTML5 canvas tag. </canvas>
var img = new Image(); img.src = './img/demo.jpg';
img.onload=function(){ var canvas=document.getElementById("myCanvas"); var ctx=canvas.getContext("2d"); ctx.drawImage(img,0,0); }
注意,调用drawImage()函数之前,请确保你的图片已经加载ok,否则你会看到canvas是空白的,这是因为在图片还没有绝对加载到页面之前,你直接调用了drawImage(),而这个时候,img对象还是空的。
ctx.font="20px microsoft yahei"; ctx.fillStyle = "rgba(255,255,255,0.5)"; ctx.fillText("my images",100,100);
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <canvas id="myCanvas" width="1000" height="500" > Your browser does not support the HTML5 canvas tag. </canvas> <script> //准备img对象 var img = new Image(); img.src = './img/demo.jpg'; // 加载完成开始绘制 img.onload=function(){ //准备canvas环境 var canvas=document.getElementById("myCanvas"); var ctx=canvas.getContext("2d"); // 绘制图片 ctx.drawImage(img,0,0); // 绘制水印 ctx.font="20px microsoft yahei"; ctx.fillStyle = "rgba(255,255,255,0.5)"; ctx.fillText("my images",100,100); } </script> </body>