html2Canvas截图不清晰

//这里用的是0.5的版本,另源码有修改,已提交至网盘,指路下载:

链接:https://pan.baidu.com/s/1kQeIbk7isDilN9kkSH_1oA  密码:tsqk


var utils  = {
    complete(completeBase) {      
      let canvas = document.createElement("canvas"),
        width = document.querySelector(".toCanvas").offsetWidth,
        height = document.querySelector(".toCanvas").offsetHeight,
        context = canvas.getContext("2d"),
        scale = this.getPixelRatio(context);
      canvas.width = width * scale;//设置放大倍数,保证清晰度
      canvas.height = height * scale;//设置放大倍数,保证清晰度
      canvas.style.width = width + "px";
      canvas.style.height = height + "px";
      context.scale(scale, scale);//设置放大倍数与上面的宽高对应
      html2canvas(document.querySelector(".toCanvas"), {
        logging: true,
        // allowTaint: true, //
        tainttest: true, //在渲染前测试图片(没整明白有啥用)
        useCORS: true, //使用跨域(如果有跨域的话必须必须必须带着!)
        background: "#fff",
        canvas: canvas,
        scale: scale,
        onrendered: function(canvas) {
          let dataURL;
           //转出来的png的长度太长,而app同事又不支持jpeg的怎么办呢,采用欺骗的方法啦,先转成jpeg的再把头部替换成png的,反正我们只是要用来分享,?
          dataURL = canvas.toDataURL("image/jpeg");
          dataURL = dataURL.replace(/data:image\/jpeg/i, "data:image/png");
        }
      });
    },
    //获取像素密度
    getPixelRatio: function(context) {
      var backingStore =
        context.backingStorePixelRatio ||
        context.webkitBackingStorePixelRatio ||
        context.mozBackingStorePixelRatio ||
        context.msBackingStorePixelRatio ||
        context.oBackingStorePixelRatio ||
        context.backingStorePixelRatio ||
        1;
      return (window.devicePixelRatio || 1) / backingStore;
    },
}
  •  

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值