首先把其中的要点先说一下
uni.createCanvasContext(canvasId, componentInstance)
当我们没有使用自定义组件时, 参数 componentInstance 可以不传
但如果我们的 canvas 是放在自定义组件中, 在vue2中一般传的是 this , 在vue3中是没有this的, 当我们在 vue3中要使用 this的时候, 我们一般会使用 getCurrentInstance()
如果我们不是使用的自定义组件
<template><view><canvas canvas-id="myCanvas" id="myCanvas" class="myCanvas"></canvas></view><button @click="chooseImage">选择图片</button>
</template>ctx = uni.createCanvasContext("myCanvas");
第二个参数不传就可以了
CanvasContext.draw(reserve,callback)
在这里我们看到 ctx.draw() 是有两个参数的,其中我们要特别注意 第二个参数 callback, 当我们 使用 uni.canvasToTempFilePath 的时候, 最好是要在 callback中使用,不然, 有可能,我们得到的图片是一个空白
uni.canvasToTempFilePath(object, componentInstance)
注意, canvasToTempFilePath 在小程序或app中返回的是url 但是在 H5中返回的是一个base64的图片数据