HTML页面生成图片并下载(html2canvas)

首先引入html2canvas,附上链接  https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.min.js

使用 html2canvas 选取需要的区域并下载

//选取<div id="view"></div>的区域,此方法为页面的点击事件

function takeScreenshot() {
    html2canvas(document.getElementById('view')).then(canvas => {
        convertCanvasToImg(canvas)
    });
}

//转换图片格式
function convertCanvasToImg(canvas) {
    // canvas base64 转 blob
    var myBlob = dataURLtoBlob(canvas.toDataURL('img/png', 0.92))
    // blob转URL对象
    myUrl = URL.createObjectURL(myBlob)
    // 创建a标签,下载图片
    downImg(myUrl)
}

//base64 转 blob
function dataURLtoBlob(dataurl) {
    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
    }
    return new Blob([u8arr], { type: mime });
}

//下载图片 filename是图片名称
function downImg(url) {
    // 创建a标签 并设置其相关属性,最后触发其点击事件
    let a = document.createElement("a")
    let clickEvent = document.createEvent("MouseEvents");
    a.setAttribute("href", url)
    a.setAttribute("download", "filename")
    a.setAttribute("target", '_blank')
    clickEvent.initEvent('click', true, true)
    a.dispatchEvent(clickEvent);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值