canvas绘制水印

2020-06-12  本文已影响0人  得到世界又如何我的心中只有你

前言

canvas 是个很神奇的东西,能完成很多事情。
初步听到水印的需求,能想到的思路就是通过canvas绘制水印图片,转为base64设置到容器的背景图片上。

实现

话不多说,上代码

/**
 * @param {*} dom
 * @param {String} txt
 */
export const Watermark = function (dom, txt) {
  if (!dom) return false
  let length = txt.length * 20 // 根据内容生成画布大小,20代表比例
  let canvas = document.createElement('canvas')
  canvas.width = canvas.height = length
  canvas.style.display = 'none'
  document.body.appendChild(canvas)
  let context = canvas.getContext('2d')
  context.font = '12px "PingFangSC", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif'
  context.fillStyle = 'rgba(0,0,0,0.1)'
  context.rotate(-15 * Math.PI / 180) // 画布里面文字的旋转角度
  context.fillText(str, length / 2, length) // 文字的位置
  dom.style.backgroundImage = `url(${canvas.toDataURL('image/png')})`
}

画布的宽高、文字的旋转角度、文字的位置可以根据项目具体需求进行调整。

上一篇下一篇

猜你喜欢

热点阅读