小程序图片转base64

丶灬走出姿态 提交于 2020-04-07 15:19:50
1:动态tabBar,item项,相册或者手机拍照
clickPhoto() {
var that = this;
wx.showActionSheet({
itemList: ['从相册中选择', '拍照'],
itemColor: "#2874dc",
success: function (res) {
if (!res.cancel) {
if (res.tapIndex == 0) {
that.chooseWxImageShop('album'); // 从相册中选择

} else if (res.tapIndex == 1) {
that.chooseWxImageShop('camera'); // 手机拍照
}
}
}
})
},
 
2:用户选择图片
chooseWxImageShop: function (type) {
var that = this;
wx.chooseImage({
count: 4, // 允许用户选择几张图片
sizeType: ['original', 'compressed'],
sourceType: [type],
success: function (res) {
var arr = that.data.photoArr.concat(res.tempFilePaths);
that.setData({
photoArr: arr
})

var imgArr = [];
if (arr.length != 0){
console.log('外层');
for (var i in arr) {
// 调函数图片转 base64
that.urlTobase64(arr[i]).then((res) => {
 
imgArr.push(res);
that.baseImgData.imgArr = imgArr;
 
})
.catch((res) => {
// app.setToast('请求失败');
})
}
that.setData({
baseImgData: imgArr
})
}
},
fail: function (res) {
console.log('photo fail', res)
}
})
},
 
3:图片转base64传临时路径
urlTobase64(url) {
  return new Promise((resolve, reject) => { // promise 解决异步问题
    wx.request({
      url: url,
      responseType: 'arraybuffer', //最关键的参数,设置返回的数据格式为arraybuffer
      success: (res) => {
        var base64 = wx.arrayBufferToBase64(res.data);
        base64 = 'data:image/jpeg;base64,' + base64;
        resolve(base64);
      },
      fail: (res) => {
        reject(false);
      }
    })
  })
},
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!