首页 > 编程知识 正文

小程序怎么生成海报分享,小程序怎么生成海报

时间:2023-05-06 08:39:48 阅读:131435 作者:3004

在实际使用canvas绘制海报并生成图像的实际工作中,使用微信小程序创建海报的功能遇到了一些问题。

获取canvas节点的宽度和高度为空

场景:隐藏且未渲染canvas节点进入页面。 单击“生成海报”按钮,然后进行渲染并开始获取canvas节点。 因此,canvas节点的宽度和高度为空

解决方案:使用倒计时延迟200ms获取在canvas上绘制的base64格式的图像

解决方案: wx.canvasToTempFilePath在以下代码中生成图像错误' canvastotempfilepath : failcanvasisempty '

解决方案:如果canvas type=“2d”,则使用canvas属性传递给canvas实例。 以前,使用" canvasId "属性报告错误,就像它是传递给canvas的HTML的id属性值wxml一样

canvas type=' 2d ' id=' my canvas '/canvas js

var myCanvas=null; 从page () onload ) SelectorQuery到Canvas节点wx.createSelectorQuery ).select('#mycanvas ' ).fields ) node 336666 } 开始创建海报的Drawposter(RES ) Constwidth=RES[0] . widthconstheight=RES.nodeconstctx=canvas.get context (2d ) ) const dpr=wx.getSystemInfoSync ).pixelratiocanvas DPR )//白色背景CTX.fill style=' # fffff ' CTX.fill rect (0,0,canvas.width, canvas.height ) )填补//绘制商品图像constimg=canvas.create image (img.src=this.data.data.coverimg.onload=) CTX.drawimage ) img CTX.fonon 20,100 )//换行文本drawtexton ) CTX,'我也是文本',20,100 ) ) 150 )//绘制二维码(后端返回到base64格式的二维码) let data=this.dhis 将base64'//base64格式的图像转换为本地图像wx.getfilesystemmanager (.writefile ({ file path : wx.env.user _ data _ path '/QRcodding success:(RES )={ let qrCode=canvas.createImage ) ) QR code.src=wx.env.user _ data _ path '/QR } } my canvas=保存canvas//canvas实例}, //海报在图像canvas: myCanvas上生成savaImg () wx.canvastotempfilepath (//canvas,然后在success:(RES ) ) wx.saveimagetooton 将照片保存到相册filePath: res.tempFilePath,success3360function(RES ) wx.showtoast ) icon:'none ',title: '图像保存成功) }、//canvas焊盘字符自动换行Drawtexton(CTX、t、x、y、w ) ({ var chr=t.split ) '); var temp=' '; var row=[]; CTX.font=' 14 pxpingfangsc-medium '; ctx.fillStyle='#000 '; for(vara=0; a chr.length; a ) if(CTX.measuretext ) temp ).width w ); }else{row.push(temp ); temp=' '; } temp =chr[a]; }row.push(temp; for(varb=0; b row.length; b ) CTX.filltext(row[b],x,y ) b1 ) *20 ); }、} } )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。