首先把其中的要点先说一下
在这里插入图片描述

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的图片数据

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐