|
|
@@ -0,0 +1,22 @@
|
|
|
+import { createApp } from 'vue'
|
|
|
+
|
|
|
+const app = createApp({})
|
|
|
+export default () => {
|
|
|
+ app.directive('watermark', (el, binding) => {
|
|
|
+ const addWaterMarker = (text, el) => {
|
|
|
+ const canvas = document.createElement('canvas')
|
|
|
+ canvas.width = 400
|
|
|
+ canvas.height = 200
|
|
|
+ const cans = canvas.getContext('2d')
|
|
|
+ cans.rotate((-20 * Math.PI) / 180) // 旋转弧度
|
|
|
+ cans.font = '16px' // 字体
|
|
|
+ cans.fillStyle = 'rgba(0, 0, 0, 0.5)' // 字体填充颜色
|
|
|
+ cans.textAlign = 'left' // 对齐方式
|
|
|
+ cans.textBaseline = 'Middle' // 基线
|
|
|
+ cans.fillText(text, canvas.width / 3, canvas.height / 2) // 被填充的文本
|
|
|
+ el.style.background = `url(${canvas.toDataURL('image/png')})`
|
|
|
+ }
|
|
|
+ const { text } = binding.value
|
|
|
+ addWaterMarker(text, el)
|
|
|
+ })
|
|
|
+}
|