时间:2019-05-03 来源:小程序工厂
黄***:
drawImage还不支持网络图片
C***:
我也遇到这个问题
微信web开发工具,切换到后台时,顶部的内容没显示出来 ...
C***:
我也遇到这个问题,该怎么解决?你解决了吗?
好***:
getImageInfo,把网络图片转成本地路径,再放进drawImage
你***:
请问这个问题解决了么?
开发者工具登录失败-微信小程序开发教程
好***:
看4楼
趁***:
我尝试用wx.downloadFile()这个接口保存到本地,但是因为它是异步的,如果能提供一个同步的方法就好了
C***:
getImageInfo,把网络图片转成本地路径,再放进drawImage和后续的绘图,这个方法很好用!
微信小程序无法预览&微信小程序开发教程
趁***:
昨晚终于找到一个方案。
用downloadFile或者getImageInfo去拿在线图片,绘制一张是没问题的。
但是如果想绘制多张怎么办?遍历下载图片源并绘制。(注意这里需要用到闭包)
一开始我尝试用异步转换同步的方式去控制,发现实现方式有些复杂,而且微信小程序不支持generator,最后选择了立即函数闭包的方式去实现。
var canvasImage = '';
var picx = 0;
var picy = 0;
var picwidth = 0;
var picheight = 0;
var j = 0;
for (var i = 0; i < photoData.length;i++){
(function(j){
getImageInfoPromisified({
src: photoData[j].url
}).then(function (res) {
canvasImage = res.path
picx = photoData[j].left / 2;
picy = (photoData[j].top - 400) / 2;
picwidth = photoData[j].width / 2;
picheight = photoData[j].height / 2;
ctx.drawImage(canvasImage, picx, picy, picwidth, picheight);
ctx.draw(true)
}).catch(function () {
console.error("get location failed")
})
})(i)
}
好***:
回复8楼,这种做法是异步,如果出现多幅图片我也暂时没想到办法,循环执行getImageInfo会有问题,图片顺序错乱,你有更好办法,可以这里留言下