zoukankan      html  css  js  c++  java
  • 微信小程序 canvas海报

    canvas描述的比较详细: https://blog.csdn.net/abs625/article/details/100170552

    // 遮罩层滚动穿透
      myCatchTouch: function () {
        return;
      },
    //画布
      share: function (e) {
        var that = this;
        var thumb = that.data.info.thumb;
        var erweima = that.data.info.erweima
        var base_thumb = that.data.info.base_thumb;
        var title = that.data.info.title;
        wx.getSystemInfo({
          success: (res) => {
            var rpx = res.windowWidth / 750
            var ctx = wx.createCanvasContext('share')   //绑定canvas
            ctx.setFillStyle('#fff')
            ctx.fillRect(0, 0, 580 * rpx, 776 * rpx)       //绘制矩形
            // 顶部图片
            wx.getImageInfo({    //获取图片信息
              src: thumb,     
              success: res => {
                ctx.drawImage(res.path, 0, 0, 580 * rpx, 580 * rpx)   //图片
                // 二维码图片
                wx.getImageInfo({   //获取图片信息
                  src: erweima,
                  success: res1 => {
                    ctx.drawImage(res1.path, 424 * rpx, 600 * rpx, 130 * rpx, 130 * rpx)
                    ctx.setFontSize(24 * rpx)  //字体大小
                    ctx.setFillStyle('#333')   //字体颜色
                    ctx.setTextAlign('left')    // 文字
                    if (title > 20) {             //省略号
                      ctx.fillText(title, 20 * rpx, 622 * rpx)
                    } else {
                      var stateText = title.substring(0, 20)
                      var endText = title.substring(20, 37)
                      ctx.fillText(stateText, 20 * rpx, 622 * rpx)
                      ctx.fillText(endText + '...', 20 * rpx, 655 * rpx)
                    }
                    wx.getImageInfo({    //获取图片信息
                      src: base_thumb,
                      success: res2 => {
                        ctx.drawImage(res2.path, 20 * rpx, 670 * rpx, 160 * rpx, 100 * rpx)
                        ctx.setFillStyle('#333')
                        ctx.setFontSize(20 * rpx)
                        ctx.fillText('长按二维码预定,分享更可赚佣金呦', 245 * rpx, 755 * rpx)
                        ctx.draw(true)   
                      }
                    })
                  }
                })
              }
            })
          },
        })
      },
      //保存网络图片到相册方法  
      saveToBlum: function () {
            wx.canvasToTempFilePath({
              canvasId: 'share',      //与canvasid保持一致
              success:function(res1){
                wx.saveImageToPhotosAlbum({
                  filePath: res1.tempFilePath,
                  success(result) {
                    wx.showToast({
                      title: '保存成功',
                      icon: 'success'
                    })
                  }
                })
              }
            })
    
      },
    <view class="cavansZhe" wx:if="{{canvasType}}" catchtouchmove="myCatchTouch">
        <canvas canvas-id="share" class="canvas" bindlongtap="saveImg" bindtouchstart="touchStart" bindtouchmove="touchMove" bindtouchend="touchEnd"></canvas>
        <view class="fs32">长按图片保存或发送给好友</view>
        <image bindtap="canvasClose" src="/hyb_travel/order/images/close_white.png" mode="widthFix" style="76rpx;height:76rpx;margin-top:36rpx"></image>
    </view>
    <!-- bindtouchstart="touchStart" bindtouchmove="touchMove" bindtouchend="touchEnd" 防止海报滑动-->
  • 相关阅读:
    一首诗
    jsp作用域问题
    jsp关于request.setAttribue还有response.addCookie()的两个问题
    编程学习过程记录
    一些关于自己的未来的东西
    requests的post提交form-data; boundary=????
    记录一些爬虫的小细节
    【CSS3】CSS——链接
    【CSS3】CSS——文本
    【CSS3】background-clip与background-origin的联系与区别
  • 原文地址:https://www.cnblogs.com/yun101/p/12539242.html
Copyright © 2011-2022 走看看