首先安装 canvas2image
npm intsall canvas2image --save
因为项目基于vue,所以需要在canvas2image的最后面 加上
export default Canvas2Image
然后在页面中引入canvas2image.js
重点: 还需要在cesium初始化中添加如下代码(若是不添加,截图出来的图片是全黑的)
contextOptions: { webgl:{ alpha: true, depth:true, stencil:true, antialias:true, premultipliedAlpha:true, //通过canvas.toDataURL()实现截图需要将该项设置为true preserveDrawingBuffer:true, failIfMajorPerformanceCaveat:true } }
最后
var canvas = this.viewer.scene.canvas; var imageWidth = 800; var img = canvas2image.convertToImage(canvas, imageWidth, imageWidth * canvas.height / canvas.width,'png'); var loadImg = document.createElement('a') loadImg.href = img.src loadImg.download = 'earth' loadImg.click()
这样就可以实现cesium的截图功能了