ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

微信小程序开发水印设置

2022-09-06 15:34:44  阅读:218  来源: 互联网

标签:rgba watermark 微信 程序开发 ctx 水印 nameText 169 watermarkText


方法来自:http://t.zoukankan.com/lhl66-p-12917217.html

1.在根目录创建components文件夹 在components下创建 watermark 文件夹 再在其下面创建page 得到 watermark.js watermark.json watermark.wxml watermark.wxss;

  1. 使用规则在相关页面的json配置文件下配置 usingComponents 即可使用组件如下示例
  "usingComponents": {
    "van-toast": "@vant/weapp/toast/index",
    "van-button": "@vant/weapp/button/index",
    "canvas-watermark": "../../components/watermark/watermark"
  }
// watermark.js
Component({
    data: {
      // 这里是一些组件内部数据
      watermarkText: '水印测试'
    },
    attached() {
      // 在组件实例进入页面节点树时执行
      // this.drowsyUserinfo()
      this.setData({
        watermarkText: (wx.getStorageSync('userInfo') || {}).name || '水印测试'
      })
    },
    methods: {
      // 这里是一个自定义方法
      drowsyUserinfo: function () {
          var userInfo = wx.getStorageSync('userInfo') || {};
          var nameText = userInfo.name || '水印测试';
          var ctx = wx.createCanvasContext("myCanvas");
          ctx.rotate(20 * Math.PI / 180); //设置文字的旋转角度,角度为45°;
          //对斜对角线以左部分进行文字的填充
          //用for循环达到重复输出文字的效果,这个for循环代表纵向循环
          for (let j = 1; j < 10; j++) { 
            ctx.beginPath();
            ctx.setFontSize(16);
            ctx.setFillStyle("rgba(0,155,169,.5)");
            ctx.fillText(nameText, 0, 50 * j);
            for (let i = 1; i < 10; i++) { //这个for循环代表横向循环
              ctx.beginPath();
              ctx.setFontSize(15);
              ctx.setFillStyle("rgba(0,155,169,.5)");
              ctx.fillText(nameText, 180 * i, 150 * j);
            }
          }
          //两个for循环的配合,使得文字充满斜对角线的左下部分
          //对斜对角线以右部分进行文字的填充逻辑同上
          for (let j = 0; j < 10; j++) {
            ctx.beginPath();
            ctx.setFontSize(16);
            ctx.setFillStyle("rgba(0,155,169,.5)");
            ctx.fillText(nameText, 0, -50 * j);
            for (let i = 1; i < 10; i++) {
              ctx.beginPath();
              ctx.setFontSize(16);
              ctx.setFillStyle("rgba(0,155,169,.5)");
              ctx.fillText(nameText, 180 * i, -150 * j);
            }
          }
          ctx.draw();
      }
  }
})
<!-- <canvas-watermark>
    <canvas canvas-id='myCanvas' class="canvas-watermark" style="pointer-events: none;"></canvas>
</canvas-watermark> -->
<!-- watermark.wxml只需要这一串 -->
<view class="water_top" style="pointer-events: none;">
    <view class="water-text">{{watermarkText}}</view>
    <view class="water-text">{{watermarkText}}</view>
    <view class="water-text">{{watermarkText}}</view>
    <view class="water-text">{{watermarkText}}</view>
    <view class="water-text">{{watermarkText}}</view>
    <view class="water-text">{{watermarkText}}</view>
    <view class="water-text">{{watermarkText}}</view>
    <view class="water-text">{{watermarkText}}</view>
</view>
/* .water_top {
    position: absolute;
    z-index: 9999;
    opacity: 0.9;
    top: 0;
    bottom: 0;
    height: 100%;
     100%;
  }
  .canvas-watermark{
    height:100%;
     100%;
  } */

  /* watermark.wxss 只需要这个 */
  .water_top{
    position: fixed;
    top:0;
    bottom: 0;
    left: 0;
    right: 0;
    /* background: #999; */
    transform:rotate(-10deg);
    /* opacity: 0.9; */
    z-index: 9999999999;
  }
  .water-text{
    float: left;
    width:375rpx;
    color: rgba(169,169,169,.2);
    text-align: center;
    font-size: 15px;
    margin: 120rpx 0;
  }
watermark.json文件

{
  "component": true
}
页面内使用标签即可实现自定义组件(页面水印)的使用;
<!-- 水印 -->
<canvas-watermark></canvas-watermark>

标签:rgba,watermark,微信,程序开发,ctx,水印,nameText,169,watermarkText
来源: https://www.cnblogs.com/czjjy/p/16661971.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有