html2canvas实现生成图片以及易出错点

举报
猫先生c 发表于 2022/11/20 22:13:09 2022/11/20
【摘要】 html2canvas(element,options).then((canvas) =>{})将html转换成图片

html2canvas 将html元素转为图片

html2canvas(element,options).then((canvas) =>{})

基本使用

  • 参数

scale:缩放比例,默认为1
allowTaint:是否允许跨域图像污染画布,默认为false
useCORS:是否尝试使用CORS从服务器加载图像,默认为false
width:canvas画布的宽度,默认为jQuery对象的宽度
height:canvas画布的高度,默认为jQuery对象的高度
backgroundColor:/画布的背景色,默认为透明(#fff),参数可以为#表示的颜色,也可以使用rgba

  • 忽略某元素
    在某元素加上以下属性信息即可
data-html2canvas-ignore="true"
  • 安装
npm install html2canvas
  • 使用
 html2canvas(this.$refs.imageDom, { backgroundColor: null, useCORS: true }).then(canvas => {
     //延迟执行确保万无一失,玄学
    setTimeout(() => {
    //转成图片,生成图片地址
         this.createFile(canvas.toDataURL("image/png"))//可将 canvas 转为 base64 格式
          }, 0)
      }).catch(error => {
    });

易错点

  1. 生成图片区域中的dom元素中有img标签,生成图片后,img图片加载不出来
  • 添加useCORS:true属性;
  • 给要生成canvas的DOM中包含的每一个img标签添加crossorigin="anonymous"属性;
  • 确保你的图片CDN服务器支持CORS访问,也就是会返回Access-Control-Allow-Origin等响应头。
  1. 不支持box-show、box-radius
  2. 生成图片背景色异常,需要在异常的背景色处的dom块元素,设置背景色,一般设置为白色
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。