在网上看了好多,也用了downloadFile,白名单也有添加。但是就是没办法显示。没报任何错。这个是什么原因???
麻烦请大家帮我看看,弄了一个下午就是没有找出原因?@官方
success: function (res) { console.log(res.data) var base64 = wx.arrayBufferToBase64(res.data); let qrcodeUrl = "data:image/png;base64," + base64; qrcodeUrl = qrcodeUrl.replace(/[\r\n]/g, "" ); wx.getUserInfo({ withCredentials: true , lang: '' , success: function (res) { var avatarUrl = res.userInfo.avatarUrl; const ctx = wx.createCanvasContext( 'share' ); ctx.setFillStyle( 'white' ) ctx.fillRect(0, 0, 580, 710) // 绘制小程序码 _this.canvasQR(ctx, base64) // 绘制头像 _this.canvasAvatar(ctx, avatarUrl, _this) ctx.draw( true ) //绘制 }, |
drawCircular: function (ctx, width, height, x, y, url) { var avatarurl_width = width; var avatarurl_heigth = height; var avatarurl_x = x; var avatarurl_y = y; ctx.save(); ctx.beginPath(); ctx.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI * 2, false ); ctx.clip(); ctx.drawImage(url, avatarurl_x, avatarurl_y, avatarurl_width, avatarurl_heigth); ctx.restore(); }, // 绘制头像 canvasAvatar: function (ctx, avatarUrl, _this){ wx.downloadFile({ url: avatarUrl, success: res => { var path = res.tempFilePath //临时本地路径 _this.drawCircular(ctx, 46, 46, 27, 27, path); ctx.draw( true ) //绘制 }, fail: res => { } }) }, // 绘制小程序码 canvasQR: function (ctx, base64){ const filePath = `${wx.env.USER_DATA_PATH}/temp_image.png`; wx.getFileSystemManager().writeFile({ filePath, data: base64, encoding: 'base64' , success() { var QR = filePath; ctx.drawImage(QR, 100, 0, 100, 100); }, fail() { } }); }, |
遇到了同样的问题,请问博主解决了吗
您解决这个问题了么
这里想显示 有2个地方需要注意
1.createCanvasContext需要传入this作为第二个参数wx.createCanvasContext('shareCanvas',this);
2.画图之前需要先获取信息 wx.getImageInfo
解决了吗?
const ctx = wx.createCanvasContext('share');
ctx.setFillStyle('white')
ctx.fillRect(0, 0, 580, 710)
// 绘制小程序码
// _this.canvasQR(ctx, base64)
// 绘制头像
// _this.canvasAvatar(ctx, avatarUrl, _this)
ctx.draw(true) //绘
打开调试的话是不效验合法域名, 你这个应该是有图片链接是http的
const ctx = wx.createCanvasContext(
'share'
);
ctx.setFillStyle(
'white'
)
ctx.fillRect(0, 0, 580, 710)
// 绘制小程序码
// _this.canvasQR(ctx, base64)
// 绘制头像
// _this.canvasAvatar(ctx, avatarUrl, _this)
ctx.draw(
true
)
//绘