html2canvas生成图片


 // 图片转换格式的方法 直接使用就好  不需要知道为什么
    dataURLToBlob (dataurl) {
      let arr = dataurl.split(',')
      let mime = arr[0].match(/:(.*?);/)[1]
      let bstr = atob(arr[1])
      let n = bstr.length
      let u8arr = new Uint8Array(n)
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n)
      }
      return new Blob([u8arr], { type: mime })
    }

    /* 保存图片的方法(即按钮点击触发的方法)
      第一个参数为需要保存的div的id名
      第二个参数为保存图片的名称 */
    saveImage (dom, imgText = '测试') {
      let that = this
      let a = document.createElement('a')
      html2canvas(dom).then(canvas => {
        let dom = document.body.appendChild(canvas)
        dom.style.display = 'none'
        a.style.display = 'none'
        document.body.removeChild(dom)
        let blob = that.dataURLToBlob(dom.toDataURL('image/png'))
        // console.log(dom.toDataURL('image/png'))
        // console.log(URL.createObjectURL(blob))
        a.setAttribute('href', URL.createObjectURL(blob))
        // 这块是保存图片操作  可以设置保存的图片的信息
        a.setAttribute('download', imgText + '.png')
        document.body.appendChild(a)
        a.click()
        URL.revokeObjectURL(blob)
        document.body.removeChild(a)
      })
    }

 // 不需要下载图片,直接把图片生成base64,然后给后端的做法

 /* 保存图片的方法(即按钮点击触发的方法)
      第一个参数为需要保存的div的id名
      第二个参数为保存图片的名称 */
    saveImage (dom, imgText = '测试') {
      html2canvas(dom).then(canvas => {
        // 获取Base64码
        console.log(canvas.toDataURL())
      })
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM