html2canvas将页面dom元素内容渲染成图片保存至本地

html2canvas:https://html2canvas.hertzen.com/configuration/
github:https://github.com/niklasvh/html2canvas

效果
在这里插入图片描述

在这里插入图片描述

代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="./js/html2canvas.js"></script>
</head>

<body>
  <div id="root">
    <h3>名片</h3>
    <div class="person">
      <img src="./assets/header.png" alt="">
    </div>
  </div>
  <button id="downloadImg">点击</button>
</body>

<script>

  let dom = document.getElementById("downloadImg");
  dom.onclick = function () {
    // 实现保存为图片的第一步:html转为canvas
    html2canvas(document.getElementById("root"), {
      scale: window.devicePixelRatio,
      height: 800,
      width: 800,
      backgroundColor: null//设置背景透明
    }).then(function (canvas) {
      let link = document.createElement('a');
      // 实现保存图片的目标只需要将canvas转image即可。
      // canvas的toDataURL方法将canvas输出为data: URI类型的图片地址,再将该图片地址赋值给元素的src属性即可。
      link.href = canvas.toDataURL();
      // 保存图片
      link.setAttribute('download', '图片canvas.png');
      link.style.display = 'none';
      document.body.appendChild(link);
      link.click();
      document.removeChild(link)

    });
  }
</script>

</html>

当图片来源于服务器,需要设置跨域

<body>
  <div id="root">
    <h3>名片</h3>
    <div class="person">
      <img style="width: 600px; height: 400px;" src="https://img0.baidu.com/it/u=3976250177,3245140550&fm=253&fmt=auto&app=120&f=JPEG?w=1200&h=675" alt="">
    </div>
  </div>
  <button id="downloadImg">点击</button>
</body>

<script>

  let dom = document.getElementById("downloadImg");
  dom.onclick = function () {
    // 实现保存为图片的第一步:html转为canvas
    html2canvas(document.getElementById("root"), {
      useCORS: true,//图片设置跨域
      scale: window.devicePixelRatio,
      height: 800,
      width: 800,
      // backgroundColor: null
    }).then(function (canvas) {
      let link = document.createElement('a');
      // 实现保存图片的目标只需要将canvas转image即可。
      // canvas的toDataURL方法将canvas输出为data: URI类型的图片地址,再将该图片地址赋值给元素的src属性即可。
      link.href = canvas.toDataURL();
      // 保存图片
      link.setAttribute('download', '图片canvas.png');
      link.style.display = 'none';
      document.body.appendChild(link);
      link.click();
      document.removeChild(link)

    });
  }
</script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: html2canvas是一个JavaScript库,可以将动态创建的DOM元素转换为图片。 动态创建DOM元素是指在页面加载完后,通过JavaScript的createElement方法或者innerHTML属性创建新的DOM元素。而html2canvas可以将这些动态创建的DOM元素转换为图片。 使用html2canvas进行转换的步骤如下: 首先,在页面中引入html2canvas.js文件。 然后,通过JavaScript动态创建需要转换为图片DOM元素。 接下来,使用html2canvas库的方法,传入动态创建的DOM元素作为参数,来实现转换。例如,使用html2canvas(element)方法,其中element是要转换的DOM元素。 最后,html2canvas会将这个DOM元素渲染为一张图片,并返回一个Canvas元素。我们可以将这个Canvas元素插入到页面中,或者将其转换为图片格式进行下载、保存等操作。 需要注意的是,由于html2canvas是基于CanvasAPI实现的,所以转换过程中会受到一些限制,比如转换的DOM元素不能跨域访问,如果存在跨域图片,可能会导致转换出错。 总之,html2canvas库可以帮助我们将动态创建的DOM元素转换为图片,在一些需要将页面内容保存图片或者进行截图等场景中十分有用。 ### 回答2: html2canvas是一个用于截图网页内容并将其转换为图片JavaScript库。它可以将DOM动态创建的元素转换为图片。 使用html2canvas动态创建的DOM图片,需要按照以下步骤进行操作: 1. 引入html2canvas库。在HTML文件中添加以下代码: ```html <script src="html2canvas.js"></script> ``` 2. 在JavaScript代码中创建DOM元素,并将其添加到页面中。例如: ```javascript var element = document.createElement('div'); element.innerHTML = '这是动态创建的DOM元素'; document.body.appendChild(element); ``` 3. 使用html2canvas函数来截图动态创建的DOM元素。例如: ```javascript html2canvas(element).then(function(canvas) { // 将canvas转换为图片 var image = canvas.toDataURL(); // 显示转换后的图片 var imgElement = document.createElement('img'); imgElement.src = image; document.body.appendChild(imgElement); }); ``` 在上面的代码中,html2canvas函数接受一个要截图的DOM元素作为参数,并返回一个Promise对象。在Promise对象的回调函数中,可以使用canvas.toDataURL方法将canvas转换为图片的Base64编码,并将其添加到页面中。 通过以上步骤,就可以使用html2canvas将动态创建的DOM元素转换为图片,并将其显示在页面上。 ### 回答3: html2canvas是一个JavaScript库,用于将网页内容转换为图像。它可以通过动态创建DOM元素并将其转换为图像的方式,实现网页截图的功能。 首先,我们需要引入html2canvas库,并创建一个指定大小的canvas元素,用于呈现转换后的图像。 接下来,我们可以使用JavaScript动态创建DOM元素,例如使用document.createElement()方法创建新的元素节点,并添加相应的属性和内容。 在创建完DOM元素后,我们需要将其加入到文档中,使其在网页中可见。可以通过document.body.appendChild()或其他适合的方法将DOM元素添加到文档中。 当所有DOM元素都创建完并添加到文档中后,可以使用html2canvas库的函数将整个文档内容转换为图像。可以通过传递canvas元素的引用以及其他可选参数,调用html2canvas()函数实现转换。 最后,我们可以通过获取canvas元素的数据,生图像并将其展示在网页上。可以使用canvas.toDataURL()方法将canvas元素转为base64编码的URL,然后将其分配给img元素的src属性即可。 总结来说,使用html2canvas库动态创建DOM并转换为图像的过程包括:引入库、创建canvas元素、动态创建DOM元素、将DOM元素添加到文档中、调用html2canvas函数进行转换、获取canvas数据并展示生的图像。这样就可以实现将动态创建的DOM转换为图像的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值