前端使用 html2canvas 插件实现保存图片功能

下载好插件后

onExport() {
      let that = this;
      //imageWrapper  vue中可直接给元素绑定ref
      const clientWidth = this.$refs.imageWrapper.offsetWidth;
      const clientHeight = this.$refs.imageWrapper.offsetHeight;
      const kh = [clientWidth, clientHeight];
      html2canvas(this.$refs.imageWrapper, {
        scale: 2 * 0.8, // scale 参数
        allowTaint: true,
        useCORS: true,
        logging: true,
      }).then((canvas) => {
        // 缩小成想要的比例,因为直接保存下来的图片清晰度不高,所以采用放大缩小的方式优化清晰度
        const w = 690;
        const h = 1200;
        // 这里可以指定保存下来的图片比例
        const elem = document.createElement("canvas");
        elem.width = w;
        elem.height = h;
        const ctx = elem.getContext("2d");
        ctx.imageSmoothingEnabled = true;
        ctx.imageSmoothingQuality = "high";
        ctx.drawImage(canvas, 0, 0, w, h);
        canvas = elem;
        let dataURL = canvas.toDataURL();
        let base64 = dataURL.split(",")[1];
        eshimin.invoke(
          "saveImage",
          {
            type: "base64",
            data: base64,
            name: "xxx.png",
          },
          function (response) {
            Toast("保存图片成功,请到相册查看~");
            var success = response.errorCode == 0;
          }
        );
      });
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值