前端如何把HTML转成图片再下载

需求:后端给了几张图片,让你自己重新组装成html,然后下载到本地,如何实现这一需求?

咱们要用到一个插件html2canvas

大致思路 就是,先把HTML转成canvas,再转成图片,进行下载

1. 官网

2. 下载html2canvas

复制代码
npm install --save html2canvas

3. 使用

复制代码
html2canvas(el).then(function(canvas) {
    document.body.appendChild(canvas);
});

el 是你需要转成图片的根元素

4. 转成图片下载

复制代码
 html2canvas(document.getElementById("capture"), {
      useCORS: true,
      allowTaint: false,
    }).then(function (canvas) {
      let data_base64 = canvas.toDataURL("image/png");
      let blobVal = methodsMap.data_to_blob(data_base64); // 转换为 blob
      let name = "我的名片.png";
      if (window.navigator.msSaveOrOpenBlob) {
        navigator.msSaveBlob(blobVal, name);
      } else {
        var link = document.createElement("a");
        link.setAttribute("href", window.URL.createObjectURL(blobVal));
        link.setAttribute("download", name + ".png");
        document.body.appendChild(link);
        link.click();
   
      }
    });
···
相关推荐
前端Hardy37 分钟前
前端如何防止用户重复提交表单?4 种可靠方案(附防坑指南)
前端·javascript·面试
前端Hardy37 分钟前
用户真的关掉页面了吗?前端精准检测页面卸载的 4 种方法(附避坑指南)
前端·javascript·面试
yangyanping201081 小时前
Vue入门到精通七之关键字const
前端·javascript·vue.js
姝然_95271 小时前
Jetpack Compose 绘制流程与自定义布局
前端
姝然_95271 小时前
Jetpack Compose Brush 渐变
前端
阿鑫_9961 小时前
通用-ESLint+Prettier基础知识
前端·后端
ai超级个体1 小时前
金三银四,一个面试官连连夸赞的个人网页技术分享
前端·面试·three.js·threejs·网页设计·网页灵感·网页分享
Oneslide1 小时前
块级元素竖向堆叠且宽度默认会撑满其父容器的可用宽度
前端
i建模1 小时前
npm使用大全
前端·npm·node.js
李剑一1 小时前
Cesium 实现园区水景!3 种水面效果,Water 材质 5 分钟搞定
前端·vue.js·cesium