浏览器截图除了用html2canvas以外,还有一种截图方式,利用svg绘制到canvas画布上,从而利用canvas的api实现图片截取,这里利用了rasterizeHTML.js库
第一步:install
$ npm install rasterizehtml
第二步: 引用
import * as rasterizeHTML from 'rasterizehtml'
第三步:使用前先在页面上创建一个canvas的dom元素,设置好宽高
const canvas = document.getElementById('canvas')
const ele = document.getElementById('game-stage')
rasterizeHTML.drawHTML(ele.innerHTML, canvas).then(() => {
// TODO
})
相比html2canvas,利用svg截图的优势是支持box-shadow 属性,和一些dom元素之间的计算