import wx from 'weixin-js-sdk'
const fsm = wx.getFileSystemManager()
const FILE_BASE_NAME = 'tmp_base64src' //自定义文件名

export const base64src = function (base64data, cb) {
  const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64data) || []
  if (!format) {
    return new Error('ERROR_BASE64SRC_PARSE')
  }
  const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`
  const buffer = wx.base64ToArrayBuffer(bodyData)
  fsm.writeFile({
    filePath,
    data: buffer,
    encoding: 'binary',
    success() {
      cb(filePath)
    },
    fail() {
      return new Error('ERROR_BASE64SRC_WRITE')
    }
  })
}

export const toBase64src = function (imageUrl) {
  return new Promise((resolve, reject) => {
    // 创建一个新的Image对象
    var img = new Image()

    // 设置图片加载完成时的回调函数
    img.onload = function () {
      // 创建一个Canvas元素
      var canvas = document.createElement('canvas')
      canvas.width = img.width
      canvas.height = img.height

      // 获取2D上下文
      var ctx = canvas.getContext('2d')

      // 在Canvas上绘制图片
      ctx.drawImage(img, 0, 0, img.width, img.height)

      // 将Canvas内容转换为Base64编码
      var base64String = canvas.toDataURL('image/jpeg') // 您可以根据需要选择不同的图片格式

      // 在此处使用 base64String，例如将其用于<img>标签的src属性
      resolve(base64String)
    }

    // 设置图片源
    img.setAttribute('crossOrigin', 'anonymous')
    // img.crossOrigin = 'Anonymous';
    img.src = imageUrl
  })
}

export default {
  base64src,
  toBase64src
}
