uniapp carema组件图片上传需要先转为base64格式的问题

这段时间在做微信小程序ocr发票识别的功能,用到了uniapp里面的carema拍照的组件,在图片上传的时候遇到了一些坑。
下面我来说一说:

1. carema组件拍照之后会返回一个http的图片地址

在这里插入图片描述
图片地址是这样的,只有一个http协议,没有域名,没有端口号,很显然,这个是只有本地才能识别的一个图片地址,当把这个地址放到浏览器上,你就会发现是这样的
在这里插入图片描述
直接无法访问

2. 如何将carema组件生成的图片让浏览器能够识别呢?

这个我们就需要把图片转换为base64格式
方法如下:

transformBase(res) {
    
      //res是carema组件返回的图片地址
	let that = this;
	var FSM = wx.getFileSystemManager();
	FSM.readFile({
    
    
		filePath: res,
		encoding: "base64",
		success: function(data) {
    
    
			let Working = data.data;
			that.getBase64ImageUrl(Working)
		}
	});
},
getBase64ImageUrl: function(res) {
    
    
	var base64Data = res;
	base64Data = wx.arrayBufferToBase64(wx.base64ToArrayBuffer(base64Data));
	let base64Url = "data:image/png;base64," + base64Data;
}

最后的base64Url就是我们需要的base64图片编码,这样,我们就转化成功了。

猜你喜欢

转载自blog.csdn.net/x_XDGS/article/details/120081019