美文网首页
html2canvas

html2canvas

作者: IT宝哥哥 | 来源:发表于2020-06-17 14:50 被阅读0次
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>htmltopic</title>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
        <script src="https://cdn.bootcdn.net/ajax/libs/html2canvas/0.5.0-beta4/html2canvas.js"></script>
        <style>
            * {
                margin: 0;
            }
    
    
            .test {
                width: 100px;
                height: 100px;
                text-align: center;
                line-height: 100px;
                background-color: #87CEEB;
                display: inline-block;
                vertical-align: top;
            }
    
    
            canvas {
                margin-right: 5px;
            }
    
    
            .down {
                float: left;
                margin: 40px 10px;
            }
    
            .down2 {
                float: left;
                margin: 40px 30px;
            }
        </style>
    </head>
    <body>
    
    
    <div class="test">
        <!--<img src="wepay.png" width="20px" height="20px" alt="">-->
        <img src="https://qiniu.ikjcm.com/ABC%E5%86%9C%E4%B8%9A%E9%93%B6%E8%A1%8C.png" width="20px" height="20px" alt="">
        测试
    </div>
    <div><a class="down" href="" download="downImg">下载</a>
    </div>
    <div><a class="down2" href="" download="downImg">下载2</a></div>
    <script>
        //直接选择要截图的dom,就能截图,但是因为canvas的原因,生成的图片模糊
        //html2canvas(document.querySelector('div')).then(function(canvas) {
        //    document.body.appendChild(canvas);
        //});
        //创建一个新的canvas
        var canvas2 = document.createElement("canvas");
        let _canvas = document.querySelector('.test');
        var w = parseInt(window.getComputedStyle(_canvas).width);
        var h = parseInt(window.getComputedStyle(_canvas).height);
        //将canvas画布放大若干倍,然后盛放在较小的容器内,就显得不模糊了
        canvas2.width = w * 3;
        canvas2.height = h * 3;
        canvas2.style.width = w + "px";
        canvas2.style.height = h + "px";
        //可以按照自己的需求,对context的参数修改,translate指的是偏移量
        //  var context = canvas.getContext("2d");
        //  context.translate(0,0);
        var context = canvas2.getContext("2d");
        context.scale(3, 3);//缩放,指定生成的图片大小
        html2canvas(document.querySelector('.test'), {canvas: canvas2,useCORS:true,logging:true}).then(function (canvas) {
            //document.body.appendChild(canvas);
            //canvas转换成url,然后利用a标签的download属性,直接下载,绕过上传服务器再下载
            document.querySelector(".down").setAttribute('href', canvas.toDataURL());
        });
    </script>
    
    
    <script language="javascript">
        //这是另一种写法
        $(function () {
            $(".down2").click(function () {
                html2canvas($(".test")).then(function (canvas) {
                    var imgUri = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); // 获取生成的图片的url
                    console.log(imgUri)
                    window.location.href = imgUri; // 下载图片
                });
    
    
                //html2canvas($('.tongxingzheng_bg'), {
                //    onrendered: function (canvas) {
                //        var data = canvas.toDataURL("image/png");//生成的格式
                //        //data就是生成的base64码啦
                //        alert(data);
                //    }
                //});
            });
        });
    </script>
    </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:html2canvas

          本文链接:https://www.haomeiwen.com/subject/oylsxktx.html