html2canvas页面内容生成图片,并解决图片清晰度模糊问题,亲测有效

直接看需求,需要把下面的预览效果图生成图片并保存到本地
在这里插入图片描述已实现此功能,成功保存到本地
在这里插入图片描述
截下来上代码

第一步,安装

npm install --save html2canvas

第二步,使用

这里的const scaleBy = 4就是把图片放大,像素比增加了,图片自然就清晰了,div里面的内容我就不写了,直接写js相关代码

import html2Canvas from "html2canvas";

getImage() {
      // 获取想要转换的 DOM 节点 #pdfDom你的div内容
      const dom = document.querySelector("#pdfDom");
      const box = window.getComputedStyle(dom);
      // DOM 节点计算后宽高
      const width = parseInt(box.width, 10);
      const height = parseInt(box.height, 10);
      // 设置像素比,这里就是解决图片模糊的问题,正常比例是1,我们给他改成4
      // 像素扩大四倍,四倍已经很清晰了,如果不够可以自己在加高
      const scaleBy = 4;
      // 创建自定义 canvas 元素
      const canvas = document.createElement("canvas");
      // 设定 canvas 元素属性宽高为 DOM 节点宽高 * 像素比
      canvas.width = width * scaleBy;
      canvas.height = height * scaleBy;
      // 设定 canvas css宽高为 DOM 节点宽高
      canvas.style.width = `${width}px`;
      canvas.style.height = `${height}px`;
      // 获取画笔
      const context = canvas.getContext("2d");
      // 将所有绘制内容放大像素比倍
      context.scale(scaleBy, scaleBy);
      // 将自定义 canvas 作为配置项传入,开始绘制
      html2Canvas(dom, { canvas, background: "#ffffff" }).then((canvas) => {
        let pageData = canvas.toDataURL();
        let link = document.createElement("a");
        link.href = pageData;
        link.download = "qimin.png";
        link.click();
      });
    },

好了,兄弟们,学废了吗今天!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端攻城狮路飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值