美文网首页
前端截图 前端生成海报 下载

前端截图 前端生成海报 下载

作者: 银角大王__ | 来源:发表于2022-07-08 10:44 被阅读0次
    1. 截取内容为div
    2. 通过html2canvas截取 生成Bob | base64
    3. 保存图片到本地(无法下载的生成图片,长按图片保存到本地)
    • style
        <style>
            * {
                margin: 0;
                padding: 0;
                list-style: none;
            }
    
            .view {
                width: 375px;
                height: 667px;
                position: relative;
                color: #FFFFFF;
                text-align: center;
                font-size: 20px;
                background: #409EFF;
            }
    
            .title {
                width: 100%;
                font-size: 30px;
                position: absolute;
                top: 50px;
                left: 50%;
                transform: translateX(-50%);
            }
    
            .content {
                width: 100%;
                font-size: 16px;
                position: absolute;
                top: 100px;
                left: 50%;
                transform: translateX(-50%);
            }
    
            .result {
                width: 375px;
                height: 667px;
            }
    
            .result>img {
                width: 100%;
                height: 100%;
            }
    
            .btn {
                padding: 10px;
            }
    
            button {
                padding: 6px 10px;
            }
        </style>
    
    • html
        <div class="btn">
            <button onclick="saveFile()">保存海报</button>
            <button onclick="drawImage()">生成图片</button>
        </div>
        <div id="capture" class="view">
            <div class="title">海报标题</div>
            <div class="content">海报内容</div>
        </div>
        <br>
        <hr>
        <div id="result" class="result"></div>
    
    • js
      <script src="https://cdn.bootcdn.net/ajax/libs/html2canvas/1.4.1/html2canvas.js"></script>
        <script>
            function saveFile() {
                let dpi = window.devicePixelRatio || 2
                let options = {
                    useCORS: true,
                    ignoreElements: false,
                    scale: dpi //设置默认值 提高图片分辨率
                };
                html2canvas(document.querySelector("#capture"), options).then(canvas => {
                    // document.body.appendChild(canvas)
                    canvas.toBlob(function (blob) {
                        downloadBob(blob);
                    });
                });
            }
            function drawImage() {
                let dpi = window.devicePixelRatio || 2
                let options = {
                    useCORS: true,
                    ignoreElements: false,
                    scale: dpi //设置默认值 提高图片分辨率
                };
                html2canvas(document.querySelector("#capture"), options).then(canvas => {
                    let url = canvas.toDataURL('image/png') //base64
                    document.querySelector('#result').innerHTML = `<img src="${url}"  alt="海报" />`
                });
            }
    
            // 下载不了的 生成图片长按保存 
            function downloadBob(blob) {
                var a = document.createElement('a');
                var url = window.URL.createObjectURL(blob);
                var filename = '海报.png';
                a.href = url;
                a.download = filename;
                a.click();
                window.URL.revokeObjectURL(url);
            }
        </script>
    
    

    相关文章

      网友评论

          本文标题:前端截图 前端生成海报 下载

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