https://uniapp.dcloud.io/api/canvas/CanvasContext?id=canvascontextdrawimage
文档本身没有说明路径怎么写,我宣布unapp的文档是世界上最垃圾的文档
...之一
资源试了安卓绝对路径,不可行,还试了好几种,发现都不行
然后发现官网drawimage有个示例代码
uni.chooseImage({
success: function(res){
ctx.drawImage(res.tempFilePaths[0], 0, 0, 150, 100)
ctx.draw()
}
})
可以借此把drawimage的能用的imageResource的路径写法打印出来
console.log(res)
chooseImage得到的是相对路径
_doc/uniapp_temp_1605694247631/canvas/1605694123212.jpg
就在android/data/io.dcloud.HBuilder/apps/HBuilder/doc里,实时调试时记得刷新下目录
坑就坑在为什么相对路径要加个下划线_
算了,凑合... 拼接一下就行
绝对路径转相对路径
1、正则方法
var strMatch = "storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/doc/snapshot/snapshot_1605690803195.jpg"
var matchReg = /doc.*?\.jpg/gi;
console.log("_"+strMatch.match(matchReg));
2、循环拆解再拼接
var filePath1="storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/doc/snapshot/snapshot_1605690803195.jpg"
var filePath2=filePath1;
var arry = filePath2.split("/")
var j
var len=arry.length
for(j=0,len;j<len;j++) {
if(arry[j]==="doc" ){ break; }
}
filePath2="_doc/"
j+=1
for(j;j<len;j++){
filePath2+=arry[j];
if(j!=len-1){
filePath2+="/"
}
}
console.log("filePath1:"+filePath1)
console.log("filePath2:"+filePath2)