微信小程序> 小程序生成海报的方法和注意事项

小程序生成海报的方法和注意事项

浏览量:3351 时间: 来源:Mike_chenTonySwagger

这两天开发了一个生成海报的功能,总结一下!

坑---------------------------------------------------------------

生成海报的图片路径必须是小程序本地的图片'../../imgs/Quiet.png',或者线上的HTTPS的图片,不然在真机上不显示哦!

生成海报之前一定要把图片先wx.downloadFile把需要用到的图片先下载下来再画哦,不然显示的可是空白哈!

海报适配:

try {      resPhone = wx.getSystemInfoSync()    } catch (e) {      resPhone = {        screenHeight: 667,        screenWidth: 375      }    }    let rpx = resPhone.screenWidth / 375;

然后把所有需要用到尺寸和位置的地方都*rpx就可以适配各种机型啦! 

文本换行:

canvasCtx.font = "bold 14px pingFang SC-Bold";//字体加粗let str = '这是测试换行的文字内容!'    var lineWidth = 0;    var lastSubStrIndex = 0;    var initHeight = 58;//距离顶部的位置    for (let i = 0; i  str.length; i++) {      lineWidth += canvasCtx.measureText(str[i]).width * rpx;      if (lineWidth  80 * rpx) {        canvasCtx.fillText(str.substring(lastSubStrIndex, i), 35 * rpx, initHeight * rpx);//绘制截取部分        initHeight += 20;//20为字体的高度        lineWidth = 0;        lastSubStrIndex = i;      }      if (i == str.length - 1) {//绘制剩余部分        canvasCtx.fillText(str.substring(lastSubStrIndex, i + 1), 35 * rpx, initHeight * rpx);      }    }

画用户头像倒角:

var avatarurl_width = 47 * rpx;    //绘制的头像宽度    var avatarurl_heigth = 47 * rpx;   //绘制的头像高度    var avatarurl_x = 35 * rpx;   //绘制的头像在画布上的位置    var avatarurl_y = 404 * rpx;   //绘制的头像在画布上的位置    canvasCtx.save();    canvasCtx.beginPath();    canvasCtx.fill()    canvasCtx.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI * 2, false);    canvasCtx.clip();    canvasCtx.drawImage(codeSrc2, avatarurl_x, avatarurl_y, avatarurl_width, avatarurl_heigth);    canvasCtx.restore();//codeSrc2是头像地址

画倒角矩形:

fillRoundRect(cxt, x, y, width, height, radius, /*optional*/ fillColor, num) {    //圆的直径必然要小于矩形的宽高              if (2 * radius  width || 2 * radius  height) { return false; }    cxt.save();    cxt.translate(x, y);    //绘制圆角矩形的各个边      drawRoundRectPath(cxt, width, height, radius, num);    cxt.fillStyle = fillColor || "#000";    cxt.fill();    cxt.restore();  },

 保存图片到相册:

调用wx.canvasToTempFilePath成功后再调用wx.saveImageToPhotosAlbum传入path就ok了!

cover-view的坑-----

增加一个好久没用的外发光的效果:box-shadow: 0rpx 0rpx 50rpx #F00;

注意:图片一定要是本地或者HTTPS的图片哦,要先下载成功后再画图哦!

如果有帮组到你,码字不易,请点个赞哦!

小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎