vue实现页面添加水印

本文实例为大家分享了vue实现页面添加水印的具体代码,供大家参考,具体内容如下

js文件

建一个watermark.js文件

let setWatermark = (str1, str2, str3) => {
let id = '1.23452384164.123412415'
    if (document.getElementById(id) !== null) {
        document.body.removeChild(document.getElementById(id))
    }
    let can = document.createElement('canvas')
    can.width = 270
    can.height = 100
    let cans = can.getContext('2d')
    cans.rotate(-20 * Math.PI / 180)
    cans.font = '17px Vedana'
    cans.fillStyle = '#666666'
    cans.textAlign = 'center'
    cans.textBaseline = 'Middle'
    cans.fillText(str1, can.width / 2, can.height)
    cans.fillText(str2, can.width / 2, can.height + 20)
    cans.fillText(str3, can.width / 2, can.height + 40)
    let div = document.createElement('div')
    div.id = id
    div.style.pointerEvents = 'none'
    div.style.top = '20px'
    div.style.left = '0px'
    div.style.opacity = '0.15'
    div.style.position = 'fixed'
    div.style.width = document.documentElement.clientWidth + 'px'
    div.style.height = document.documentElement.clientHeight + 'px'
    div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
    document.body.appendChild(div)
    return id
}
// 添加水印
export const setWaterMark = (str1, str2, str3) => {
    let id = setWatermark(str1, str2, str3)
    if (document.getElementById(id) === null) {
        id = setWatermark(str1, str2, str3)
    }
}
// 移除水印
export const removeWatermark = () => {
    let id = '1.23452384164.123412415'
    if (document.getElementById(id) !== null) {
        document.body.removeChild(document.getElementById(id))
    }
}

页面引入

html添加

:style="{ backgroundImage: `url(${orgBackground})` }"

引入

import { removeWatermark, setWaterMark } from '@/libs/watermark'

data添加

orgBackground: '',

mounted()添加

setWaterMark(str1, str2, str3);

效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Vue之全局水印的实现示例

    目录 1.创建水印Js文件 2.引入操作 2.1 在App.vue中引用或其他页面 2.2 在router配置文件中引用 [需求]系统内页面显示水印,登录页面没有水印(退出登录时,登录页面不会显示水印) 1.创建水印Js文件 /* * @Author: 刘小二 * @Date: 2021-07-15 14:43:27 * @LastEditTime: 2021-07-15 15:00:27 * @LastEditors: Please set LastEditors * @Description

  • Vue使用自定义指令实现页面底部加水印

    项目场景 给项目的整个背景加上自定义水印,可以改变水印的文案和字体颜色等 实现思路 这里使用的技术主要是canvas,在实现水印的过程中,主要使用了canvas的特性 使用 canvas 特性生成 base64 格式的图片文件,然后设置其字体大小,颜色等 最后将其设置为背景图片,这就实现了页面的水印效果 实现效果 实现代码 <template> <div class="water-marker" > <div v-waterMarker="{te

  • vue中使用带隐藏文本信息的图片、图片水印的方法

    一.带隐藏文本信息的图片 通过RGB 分量值的小量变动,不影响对图片的识别.因此,我们可以在图片加入文字信息. 最终达到如下效果: 首先,在该组件中加入img用于显示图片 <canvas ref="canvas" v-show="0"></canvas> <img :src="imageUrl" v-if="imageUrl"/> 调用方法 encryptionImg({ width = '

  • Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤

    实现效果 可用插件介绍 Mozilla 提供了 PDF.js和pdfjs-dist,两者的区别如下: PDF.js ,一个完整的 PDF 查看器,可以直接使用其提供的 viewer.html 查看 PDF 内容,包含完整样式和相关功能.优点是快速集成,不需要自己实现查看器的功能和样式.缺点是如果要自定义样式和功能,反而会很麻烦. pdfjs-dist ,PDF.js 的预购建版本,只包含 PDF 内容的渲染功能,需要自己实现查看器的样式和相关功能. Vue 官方插件库 Awesome Vue.j

  • vue实现页面添加水印效果

    最近在做项目的时候要求给页面加上水印效果,废话不多说直接上代码: export function watermark(settings) { debugger; //默认设置 var defaultSettings={ watermark_txt:"text", watermark_x:20,//水印起始位置x轴坐标 watermark_y:20,//水印起始位置Y轴坐标 watermark_rows:5,//水印行数 watermark_cols:10,//水印列数 watermar

  • vue实现上传图片添加水印(升级版)

    vue项目实现上传图片添加水印升级版,供大家参考,具体内容如下 封装水印方法 /** * 添加水印 * @param {blob} file * @param {string} el * @returns {Promise} */ export async function addWaterMarker(file, el = '#markImg') { return new Promise(async (resolve, reject) => { try { // 先压缩和旋转图片 file =

  • vue实现上传图片添加水印

    本文实例为大家分享了vue上传图片添加水印的具体实现代码,供大家参考,具体内容如下 1.封装添加水印方法 /** * 添加水印 * @param {blob} file * @param {string} el * @returns {Promise} */ export async function addWaterMarker(file, el = '#markImg') { return new Promise(async (resolve, reject) => { try { // 先

  • Vue实现页面添加水印功能

    创建watermark.js文件 let watermark = {} let setWatermark = (str) => { let id = '1.23452384164.123412416'; if (document.getElementById(id) !== null) { document.body.removeChild(document.getElementById(id)); } //创建一个画布 let can = document.createElement('can

  • vue项目实现对某个区域绘制水印

    本文实例为大家分享了vue实现对某个区域绘制水印,供大家参考,具体内容如下 首先看一下效果: 其实原理很简单,就是使用canvas画成图,然后设置div的背景即可,这里参考了其他人思路又按照我自己的需求,封装了一个插件,可以直接在项目中使用,这里可以对某一个单独的区域设置水印: 'use strict' const watermark = {} /** * * @param {要设置的水印的内容} str * @param {需要设置水印的容器} container */ const setWa

  • vue轻松实现水印效果

    前言: vue项目中使用水印效果,可指定容器 效果图: 1.不指定容器 2.指定容器 实现方法: 1.新建一个配置文件 watermark.js ,可放util,也可放别的地方 let watermark = {} let setWatermark = (text, sourceBody) => { let id = Math.random()*10000+'-'+Math.random()*10000+'/'+Math.random()*10000 if (document.getElemen

随机推荐