uniapp将图片base64绘制到画布中
html
<view class="content">
<canvas canvas-id="myCanvas" style="width: 300px; height: 300px;"></canvas>
</view>
js
// 获取图片的完整base64
this.qrurl = res.data
// 去掉图片的前缀信息,仅保留base64
const base64Data = this.qrurl.replace(/^data:image\/\w+;base64,/, '');
// 创建文件管理对象,用来提供保存一个临时的文件地址
const fs = uni.getFileSystemManager();
// 临时文件地址名
const filePath = `${wx.env.USER_DATA_PATH}/shareQrcode.jpg`
// 写入临时文件,文件地址filePath,图片信息base64Data
fs.writeFile({
filePath,
data: base64Data,
encoding: "base64",
success(res) {
// 开始绘制到base64到画布中,把文件地址放进去即可
let context = uni.createCanvasContext('myCanvas', this);
context.drawImage(filePath, 0, 0, 300, 300);
context.draw();
}
})
uniapp的uni.getImageInfo
只能获取网络图片地址的图片信息,如果是将base64上传到网络然后再绘制又会浪费存储空间,时间,带宽等。所以不能用这个方法配合uni.createCanvasContext
绘制图片到画布。
如果只有base64数据的话可以直接用uni.getFileSystemManager()
获取一个临时的文件地址,然后配合绘制到画布,直接前端本地就能完成。🤭
本文作者:Hello霖
本文链接:https://www.cnblogs.com/Hello233/p/18167644
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步