美文网首页微信小程序
微信小程序Canvas绘制海报

微信小程序Canvas绘制海报

作者: 是狮子呀_ | 来源:发表于2019-09-18 16:59 被阅读0次
    image.png

    index.js

    const app = getApp()
    // 设置文本
    const setText = (context, fs, color, x, y, c) => {
      context.setFontSize(fs);
      context.setFillStyle(color);
      context.setTextAlign('left');
      context.fillText(c, x, y);
      context.restore();
    };
    Page({
      data: {
        imagePath:''
      },
      onLoad(){
        var that=this;
    //#####如需引用网络图片 需先下载
        wx.downloadFile({
           url: 'https://xxxx.com/image',
           success: function (res) {
               that.setData({
                  path: res.tempFilePath
               })
            }
         })
        var ctx = wx.createCanvasContext('mycanvas');
        var c_avatar = '../image/timg (2).jpg';
        var wechat = '../image/wechat.png';
        var path =that.data.path;
        // 绘制背景颜色
        ctx.fillStyle = "#ffe200";
        ctx.fillRect(0, 0, 375, 612);
        // 绘制孩子头像、姓名  年份
        //绘制名字
        setText(ctx, 16, '#333333', 90, 45, '骆一锅');
        //绘制年龄
        setText(ctx, 14, '#333333', 90, 65, '三岁6个月');
        //绘制年份
        setText(ctx, 20, '#333333', 210, 55, "2019,");
        //绘制标题
        setText(ctx, 16, '#333333', 260, 55, "每月'心'发现");
        // 绘制画报外框
        ctx.rect(20, 85, 335, 457)
        ctx.setFillStyle('white')
        ctx.fill()
        // 绘制画报背景图
        //这个地方的图片是需要注意,图片需要下载不然,手机上不能正常显示!!!
        ctx.drawImage(path, 30.85, 95, 315, 437);
        setText(ctx, 44, '#fff', 62, 160, '1');
        setText(ctx, 36, '#fff', 62, 200, 'Jan.');
        //头像
        ctx.arc(45, 45, 25, 0, 2 * Math.PI) //画出圆
        ctx.strokeStyle = "#fff";
        ctx.clip(); //裁剪上面的圆形
        
        ctx.drawImage(c_avatar, 20, 20, 50, 50);
        // 绘制生成画报
        ctx.draw(true, setTimeout(function () {
          wx.canvasToTempFilePath({
            canvasId: 'mycanvas',
            success: function (res) {
              console.log(res)
              var tempFilePath = res.tempFilePath;
              that.setData({
                imagePath: tempFilePath
              });
            },
            fail: function (res) {
              console.log(res);
            }
          })
        }, 1000));
      }
    })
    
    

    index.wxml

    <view class="intro">
      <canvas style="width: 375px;height: 612px;position:fixed;top:9999px;left:0;z-index:223;" canvas-id="mycanvas"></canvas>
      <image src="{{imagePath}}" mode="widthFix"></image>
    </view>
    

    相关文章

      网友评论

        本文标题:微信小程序Canvas绘制海报

        本文链接:https://www.haomeiwen.com/subject/qdbsectx.html