image 转 Blob

export function imageToBlob(src, cb){
  imageToCanvas(src, function (canvas){
    cb(dataURLToBlob(canvasToDataURL(canvas)))
  })
}

Blob 转 image

export function blobToImage (blob, cb) {
  fileOrBlobToDataURL(blob, function (dataurl){
    var img = new Image()
    img.src = dataurl
    cb(img)
  })
}
export function canvasToDataURL (canvas, format, quality) {
  return canvas.toDataURL(format||'image/jpeg', quality||1.0)
}

export function dataURLToBlob(dataurl){
  var arr = dataurl.split(',')
  var mime = arr[0].match(/:(.*?);/)[1]
  var bstr = atob(arr[1])
  var n = bstr.length
  var u8arr = new Uint8Array(n)
  while(n--){
    u8arr[n] = bstr.charCodeAt(n)
  }
  return new Blob([u8arr], {type:mime})
}

export function imageToCanvas(src, cb){
  var canvas = document.createElement('CANVAS')
  var ctx = canvas.getContext('2d')
  var img = new Image()
  img.src = src
  img.onload = function (){
    canvas.width = img.width
    canvas.height = img.height
    ctx.drawImage(img, 0, 0)
    cb(canvas)
  }
}

export function fileOrBlobToDataURL(obj, cb){
  var a = new FileReader()
  a.readAsDataURL(obj)
  a.onload = function (e){
    cb(e.target.result)
  }
}

欢迎补充~~


Grace糖衣
15 声望2 粉丝

用于记录一些平时遇到的问题