[图片] [图片] //上传图片到服务器 upload(path) { showLoading({title:'正在加载...'}); Taro.uploadFile({ url: baseUrl + '/v1/my/upload', filePath: path, name: 'upload_file', header: { "Content-Type": "multipart/form-data", 'accept': 'application/json', 'token': Taro.getStorageSync('access_token') }, }).then((res) => { let data = JSON.parse(res.data); if (data.Status == 0) { let file_id = data.Data.file_id; this.setState({ file_id }) this.props.dispatch&&this.props.dispatch({ type:'my/download', payload:{ token:Taro.getStorageSync('access_token'), id:file_id }, callback:(res)=>{ hideLoading(); if (res) { let base64 = Taro.arrayBufferToBase64(res); if (base64) { let img_url = 'data:image/png;base64,' + base64; console.log(img_url,'img_url') //能拿到base64的的img 就是不显示 this.setState({ img_url:img_url }) } } } }) } }) } [图片] 1原来业务逻辑是 先上传图片,然后后端返回图片id 前端通过 id去下载二进制图片文件,并转换为base64再显示,现在想对上传对图片压缩一些,所以使用canvasToTempFilePath,对图片压缩,整个流程都能走通,但是就是不能正常显示图片。
wx.canvasToTempFilePath fileType:“jpg” 。结果为png?[图片] 2D画布生成图片返回的链接,使用wx.getImageInfo 读取的type为png,,保存下来的图片位深32位。不应该是jpg,位深24的吗?
2020-07-08