pc端,將頁面內容生成爲一張圖片,並下載圖片功能

將頁面的html部分,生成爲一張圖片,點擊下載的時候,下載這張圖片到本地電腦

html2canvas.js——HTML轉Canvas工具 

1.下載html2canvas.js:https://html2canvas.hertzen.com/

github參考:https://github.com/niklasvh/html2canvas

1.引入文件:
<script src="jquery-1.9.0.min.js"></script>
<script src="html2canvas.js"></script>

2.html:
<body>
    <button>講文本內容生成一張圖片,下載保存</button>
    <div style="width: 400px;height: 400px;" id="saveBox">
        <p> 我是一段用來生成圖片的文本</p>
        <p> 我是一段用來生成圖片的文本</p>
        <p> 我是一段用來生成圖片的文本</p>
        <p> 我是一段用來生成圖片的文本</p>
        <p> 我是一段用來生成圖片的文本</p>
    </div>
    <img src="" alt="" id="saveImg">
    <a href="javascript:;" class="btn-save" title="保存圖片">保存圖片</a>
</body>

3.js邏輯代碼

var createImg = '';
$("button").click(function() {
    html2canvas($("#saveBox")[0], {
        scale: 1,
        logging: false,
        useCORS: true
    }).then((canvas) => {
        createImg = canvas.toDataURL("image/jpeg", 1);
        $('#saveImg').attr('src', createImg);
    });

    // 點擊下載陣容圖片
    $('.btn-save').on('click', function() {
        handlerDownload(base64ToBlob(createImg), 'my.jpg');
    });
})

// 處理下載
function handlerDownload(data, fileName, contentType = 'image/jpeg') {
    const blob = new Blob([data], {
        type: contentType
    })
    const downloadElement = document.createElement('a')
    const href = window.URL.createObjectURL(blob) // 創建下載的鏈接
    downloadElement.href = href
    downloadElement.download = fileName // 下載後文件名
    document.body.appendChild(downloadElement)
    downloadElement.click() // 點擊下載
    document.body.removeChild(downloadElement) // 下載完成移除元素
    window.URL.revokeObjectURL(href)
}
// base64轉blob 
function base64ToBlob(code) {
    let parts = code.split(';base64,');
    let contentType = parts[0].split(':')[1];
    let raw = window.atob(parts[1]);
    let rawLength = raw.length;
    let uInt8Array = new Uint8Array(rawLength);
    for (let i = 0; i < rawLength; ++i) {
        uInt8Array[i] = raw.charCodeAt(i);
    }
    return new Blob([uInt8Array], {
        type: contentType
    });
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章