vue中添加文字或图片水印

摘要:
img.width,img.height,//被剪切图像的高度。0,50,//在画布上放置图像的x、y坐标位置。

首先引用warterMark.js,内容如下

'use strict'
 
var watermark = (className,str,type) =>{
    let dom =document.getElementsByClassName(className)
    let canvas = document.createElement('canvas')
    let cxt = canvas.getContext('2d')
    let div = document.createElement('div')
    
    let imgScale = 0.6canvas.width = 200
    if(type == 'text'){
      cxt.font = '16px Microsoft JhengHei'cxt.fillStyle = 'rgba(200, 200, 200, 0.3)'cxt.textAlign = 'left'cxt.textBaseline = 'Middle'cxt.fillText(str, 10, 50)
      cxt.clearRect(0, 0, canvas.width, canvas.height);
       div.style.background = 'url(' + canvas.toDataURL('image/png') + ') left top repeat'drawImage(div,dom)  
    }else{
        //创建新的图片对象
        let img = newImage();
        //指定图片的URL
        img.src =str;
        //浏览器加载图片完毕后再绘制图片
        img.onload = function() {
            //cxt.drawImage(img,0,0);
            cxt.rotate(-20 * Math.PI / 180)
            let whScale = img.width /img.height
            cxt.clearRect(0, 0, canvas.width, canvas.height);
             cxt.drawImage(img, //规定要使用的图像、画布或视频。
                            0, 0, //开始剪切的 x 坐标位置。
                            img.width, img.height,  //被剪切图像的高度。
                            0, 50,//在画布上放置图像的 x 、y坐标位置。
                            img.width * imgScale, img.height * imgScale  //要使用的图像的宽度、高度
)
            div.style.opacity = 0.3div.style.background = 'url(' + canvas.toDataURL('image/png') + ') left top repeat'drawImage(div,dom) 
        }
    }
}
var drawImage = function(div,dom) {
    div.style.pointerEvents = 'none'div.className = 'weterbox'div.style.top = 0div.style.left = 0div.style.position = 'absolute'div.style.zIndex = '100000'div.style.width = '100%'div.style.height = '100%'
    //console.log(dom) 
    if( dom.length > 0){
        for(let i = 0; i< dom.length;i++){
            let child = dom[i].getElementsByClassName('weterbox')
            if(child.length > 0){
                dom[i].removeChild(child[0])
            }
            dom[i].appendChild(div.cloneNode(true))
        //console.log(i,dom[i])
}
    }
}
 
export default watermark

在页面中调用,首先 import watermark from '@/libs/warterMark.js'

图片水印调用方法如下

watermark('需要添加水印的div元素的className','水印图片路径')
 
vue中添加文字或图片水印第1张

文字水印调用方法

watermark('需要添加水印的div元素的className','水印文字','text')

需要用到的样式

.viewWeb{
		position: relative;
	}

免责声明:文章转载自《vue中添加文字或图片水印》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Swift UITextView设置富文本点击, 取消一切点击事件(放大镜/复制粘贴/删除等等)react antd form 自定义表单验证validator 需要注意的细节,否则会无法触发表单提交。下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Vue(一)

一、es6语法:let和const es6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效 for循环...

vue 点击弹出下拉菜单 点击其他页面收回菜单

由于elementUI的下拉菜单在项目中表现得不尽人意 (定位的原因) 于是 决定自己 整一个 小而美 理清下面几种情况就妥了 出现前 出现后 点击后 出现后未点击选项(点击空白页) 还是直接放码过来 show you my code吧~~~ 直接上点击空白(其他)页面 选项框收回 代码吧 思路:直接阻止按钮和选项框的事件冒泡,然后给document绑定...

Vue之项目搭建

  一、Vue自动化工具的安装 nvm:nodejs 版本管理工具。 也就是说:一个 nvm 可以管理很多 node 版本和 npm 版本。 nodejs:在项目开发时的所需要的代码库 npm:nodejs 包管理工具。 在安装的 nodejs 的时候,npm 也会跟着一起安装,它是包管理工具。 npm 管理 nodejs 中的第三方插件   1,安装nv...

Vue.js 源码分析(二十七) 高级应用 异步组件 详解

当我们的项目足够大,使用的组件就会很多,此时如果一次性加载所有的组件是比较花费时间的。一开始就把所有的组件都加载是没必要的一笔开销,此时可以用异步组件来优化一下。 异步组件简单的说就是只有等到在页面里显示该组件的时候才会从服务器加载,不显式的话就不会加载,这样即可提高客户端的访问速度也可以降低对服务器的请求次数,可谓优化的一个利器。 异步组件常用有3种异步...

跨平台响应式开发框架DevExtreme——支持Vue 3

DevExpress技术交流群3:700924826欢迎一起进群讨论 DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,到ASP.NET Core或...

5款vue前端UI框架

Vue.js是一套构建用户界面的 渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。 实用的 Vue.js组件库可以帮助我们快速搭建页面,下面介绍小编认为比较受欢迎的五个vue前端ui框架。 TOP5——Vue-Blu Vue-Blu是基于Vuejs和Bulma开发的开源UI组件库。旨在为PC端的前端开发(特别是中后台产品)提供一...