uniapp+vue3 使用canvas,并保存图片(图片是空白的问题)
组件时, 参数 componentInstance 可以不传但如果我们的 canvas 是放在自定义组件中, 在vue2中一般传的是 this , 在vue3中是没有this的, 当我们在 vue3中要使用 this的时候, 我们一般会使用 getCurrentInstance()如果我们不是使用的自定义组件。
·
首先把其中的要点先说一下
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的图片数据
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)