tanghaolin
2022-08-31 244c4241427b9f3316f06f1e0ae2ee571edc1a23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
var utils = {
  uniqueInArray(arr) {
      //去重
      var n = {},
          r = [];
      for (var i = 0; i < arr.length; i++) {
          if (!n[arr[i]]) {
              n[arr[i]] = true;
              r.push(arr[i]);
          }
      }
      return r;
  },
  uniqueInArrayObject(arr) {
      //数组对象去重 根据数组对象中的某个唯一的键名去重
      let n = [],
          r = {};
      arr.forEach(ele => {
          if (!r[ele.ID]) {
              n.push(ele)
              r[ele.ID] = true
          }
      });
      return n;
  },
  getLabelInArray(arr, key) {
      let label = null;
      arr.forEach(item => {
          if (item.value == key) {
              label = item.label
          }
      });
      return label
  },
  getValueInArray(arr, key) {
      let value = null;
      arr.forEach(item => {
          if (item.label == key) {
              value = item.value
          }
      });
      return value
  },
  //给图片添加水印
  getImgWaterMark({
      url = '',
      textAlign = 'left',
      textBaseline = 'middle',
      font = '18px Microsoft Yahei',
      fillStyle = 'rgba(0, 0, 0, 0.15)',
      // fillStyle = '#aaaaaa',
      content = 'Eventech',
      cb = null,
  } = {}) {
      // 创建所需要添加水印的img图片
      const canvas = document.createElement('canvas')
      const ctx = canvas.getContext('2d')
          //console.log(url, 58)
      let watermark = new Image()
      watermark.src = "static/img/watermark/default.png"
      watermark.crossOrigin = 'anonymous'
 
      const img = new Image()
      img.src = url
      img.crossOrigin = 'anonymous'
      img.onload = function() {
          // 创建canvas,并将创建的img绘制成canvas
          canvas.width = img.width
          canvas.height = img.height
 
          ctx.drawImage(img, 0, 0)
          ctx.drawImage(watermark, img.width / 2, 10) //上
          ctx.drawImage(watermark, 0, img.height / 2) //左
          ctx.drawImage(watermark, img.width / 2, (img.height - 120)) //下
          ctx.drawImage(watermark, (img.width - 120), img.height / 2) //右
 
 
          ctx.textAlign = textAlign
          ctx.textBaseline = textBaseline
          ctx.font = font
          ctx.fillStyle = fillStyle
          ctx.globalAlpha = 0.3;
          ctx.rotate((Math.PI / 180) * 15)
              // 循环绘制水印
              // ctx.fillText(content, img.width - textX, img.height - textY)
              // for (let i = 0; i < img.height / 120; i++) {
              //     for (let j = 0; j < img.width / 65; j++) {
              //         ctx.fillText(content, i * 300, j * 200, img.width)
              //     }
              // }
              // 将绘制完成的canvas转换为base64的地址
          const base64Url = canvas.toDataURL()
          cb && cb(base64Url)
      }
  },
}
 
export default utils