html2canvas 生成图片并将图片上传为网络链接

news/2024/7/23 23:22:37 标签: javascript, 前端, 开发语言

安装依赖

javascript">npm install html2canvas

引入依赖

javascript">import html2canvas from 'html2canvas'
javascript">// 上传图片
    videoFile(file) {
      let params = new window.FormData()
      let fileOfBlob = new File([file], new Date().getTime() + '.jpg')
      params.append('file', fileOfBlob)
      uploadImgFile( params).then(res => {
        console.log('上传结果', res)
        if (res.success) {
        }
      })
    },
    // 生成海报
    drawImage(type) {
      // this.$Loading('加载中')
      var that = this
      var node = document.getElementsByClassName('shareImg' + type)[0]
      // console.log($('#shareImg'))
      html2canvas(node, {
        allowTaint: true,
        useCORS: true,
        logging: true,
        taintTest: false,
        scale: 6,
        width: document.getElementsByClassName('shareImg' + type)[0].clientWidth,
        height: document.getElementsByClassName('shareImg' + type)[0].clientHeight
      })
        .then(function (canvas) {
          // console.log('/', document.getElementsByClassName('fixed-img1'))
          document.getElementsByClassName('fixed-img' + type)[0].style.display = 'block'
          // console.log("元素",document.getElementsByClassName('fixed-img'+type)[0]);
          if (type == 1) {
            that.img1 = canvas.toDataURL('image/png')
          }
          if (type == 2) {
            that.img2 = canvas.toDataURL('image/png')
          }
          if (type == 3) {
            that.img3 = canvas.toDataURL('image/png')
          }
          if (type == 4) {
            that.img4 = canvas.toDataURL('image/png')
          }
          // that.img = canvas.toDataURL('image/png')
          // console.log("canvas.toDataURL",canvas.toDataURL('image/png'));
          console.log('图片已生成')
          that.codeBorder = false
          that.type = 1

          let dataURL = canvas.toDataURL('image/png')
          let pageBlob = that.dataURLtoBlob(dataURL)
          console.log('pageBlob', pageBlob)
          that.videoFile(pageBlob)
        })
        .catch(function (error) {
          console.log('错误信息')
          console.log(error)
        })
    },
    // 将base64转成blob 为了后续能上传
    dataURLtoBlob(dataurl) {
      var arr = dataurl.split(',')
      //注意base64的最后面中括号和引号是不转译的
      var _arr = arr[1].substring(0, arr[1].length - 2)
      var mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(_arr),
        n = bstr.length,
        u8arr = new Uint8Array(n)
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n)
      }
      return new Blob([u8arr], {
        type: mime
      })
    },

http://www.niftyadmin.cn/n/874888.html

相关文章

error 系统错误 错误码10007_云台壹号剖析金融科技中机器学习模型的错误率

原标题:云台壹号剖析金融科技中机器学习模型的错误率云台壹号认为,为了评估机器模型是否存在过度拟合,可以计算两个指标,样本内错误率(in sample errors),与样本外错误率(out of sample errors)。其中,错误…

velocity参数重新赋值_Velocity 基本语法

Velocity 基本语法Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言可以使用在 Java 中定义的对象和变量上。Velocity 是 Apache 基金会的项目,开发的目标是分离 MVC 模式中的持久化层和业务层。但是在实际应用过程中,Velocity 不仅仅…

华硕 内存条 不同步_这颜值谁不爱呢?阿斯加特 洛极W3 RGB内存条 开箱评测

众所周知RGB可以有效的提升电脑的“性能”,越来越多的人选择带有RGB灯效的电脑配件,内存条也不例外。这其中做RGB内存条最出名的就要数芝奇了,但是花一两千买内存条,容量只有16G、32G确实有些不划算,芝奇内存条高昂的价…

java环境变量的配置_java学习应用篇|windows安装JDK及配置环境变量

学习前言其实本系统最有价值的东东,已经在前两篇中写完了,后面这些只不过是前面运用.新知识无穷无尽,每过几天就有了一些新的概念/框架出来,本系列的学习,我们力求用基本的学习方法多探究一些代码本质方面的知识,这样无论以后出现什么知识点,我们都可以很快的学习应用起来.小刀…

eureka自我保护时间_SpringCloud Eureka自我保护机制原理解析

这篇文章主要介绍了SpringCloud Eureka自我保护机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下1. 自我保护机制演示eureka在频繁修改微服务名称的时候,可以会出现如下现象:2…

imap读取邮箱和附件_利用用python爬虫实现定时QQ邮箱推送英文文章,辅助学习英语,再也不用担心英文不好啦!...

自从在上海上了大学后愈加的感觉英文的重要性,其实自己学习英文的意愿还是有的,但是就是总因为各种琐碎的小事忘记,于是想要借用自己擅长的python帮助自己。当然,定时推送英文文章只是一部分,接下来我准备…

select sqlite 唯一_Sqlite—查询语句(Select)

基本语法如下sqlite> select * from tb_user;sqlite> select userid,username from tb_user;格式化的查询输出sqlite> .header onsqlite> .mode columnsqlite> select * from tb_user;设置输出列的宽度sqlite> .width 10, 20, 10sqlite> select * from tb…

iphone重启_如何解决iPhone一直重启?

iPhone一直重启比较容易发生在旧的设备上面。因为电池的接触不良或者应用与系统的冲突都容易导致iPhone进入到一直重启开不了机的状态。如果想要解决这个问题,你可以使用以下的几种方法,拯救你的爱iPhone。1 检查iPhone的电池连接,解决iPhone…