• js div 转canvas 场景出图


    代码

    参考博客 JS实现将div生成高清图片并保存本地 https://blog.csdn.net/qq_42583562/article/details/87755493

    //div出图 需引入 html2canvas.js  下载地址 http://html2canvas.hertzen.com/
    function exportDivAsPNG(divname,pngname){
        //创建一个新的canvas
        var tempCanvas = document.createElement("canvas");
        let tempDiv = document.querySelector(('#'+divname));
        var w = parseInt(window.getComputedStyle(tempDiv).width);
        var h = parseInt(window.getComputedStyle(tempDiv).height);
        //将canvas画布放大若干倍,然后盛放在较小的容器内,就显得不模糊了
        tempCanvas.width = w * 2;
        tempCanvas.height = h * 2;
        tempCanvas.style.width = w + "px";
        tempCanvas.style.height = h + "px";
        //可以按照自己的需求,对context的参数修改,translate指的是偏移量
        //  var context = canvas.getContext("2d");
        //  context.translate(0,0);
        var context = tempCanvas.getContext("2d");
        context.scale(0, 0);
        html2canvas(document.querySelector(('#'+divname)), { canvas: tempCanvas }).then(function(canvas) {
        var MIME_TYPE = "image/png";
        var imgURL = canvas.toDataURL(MIME_TYPE);
        var dlLink = document.createElement('a');
        dlLink.download = pngname;
        dlLink.href = imgURL;
        dlLink.dataset.downloadurl = [MIME_TYPE, dlLink.download, dlLink.href].join(':');
        document.body.appendChild(dlLink);
        dlLink.click();
        document.body.removeChild(dlLink);
        });
        };
        
    //得到当前时间字符串,格式为:YYYY-MM-DD HH:MM:SS    
    function curentTimeString() {   
        var now = new Date();    
        var year = now.getFullYear();       //年  
        var month = now.getMonth() + 1;     //月  
        var day = now.getDate();            //日      
        var hh = now.getHours();            //时  
        var mm = now.getMinutes();          //分  
        var ss=now.getSeconds();            //秒    
        var clock = year + "-";    
        if(month < 10) clock += "0";         
        clock += month + "-";    
        if(day < 10) clock += "0";   
        clock += day + " ";  
        if(hh < 10) clock += "0";  
        clock += hh + ":";  
        if (mm < 10) clock += '0';   
        clock += mm+ ":";      
        if (ss < 10) clock += '0';   
        clock += ss;  
        return(clock);   
        }; 
        //使用方式
        exportDivAsPNG('mapDiv',curentTimeString());
    

    效果

  • 相关阅读:
    Openjudge NOI题库 ch0111/01 查找最近的元素
    Openjudge NOI题库 ch0111/07 和为给定数
    Openjudge NOI题库 ch0111/08 不重复地输出数
    Openjudge NOI题库 ch0111/10 河中跳房子|NOIP2015 day2 stone
    Openjudge NOI题库 ch0111/t1776 木材加工
    SRM 508(2-1000pt)
    SRM 507(2-1000pt)
    SRM 504.5(2-1000pt)
    最小生成树专题总结
    SRM 506(2-1000pt)
  • 原文地址:https://www.cnblogs.com/hustshu/p/15226684.html
Copyright © 2020-2023  润新知