html2canvas截图地图和看到的不一样_Web项目集成截图功能

html2canvas

官网:https://html2canvas.hertzen.com/

4a40255ee84b1623e03bdf871e2b0620.png

官网截图

介绍

html2canvas是一个不依赖第三方的截图插件,使用它可以在用户浏览器截取网页或部分网页的屏幕截图;屏幕截图是基于DOM的,所以它可能无法保证100%和看到的一致,因为它实际上不是真正的屏幕截图,而是根据页面的信息构造出的图片。由于它的工作原理,暂时只支持它所支持的css属性,详细的文档可以参照官方文档

安装和使用方法

npm install html2canvas

import html2canvas from 'html2canvas';

//OR 到官网下载,引入脚本

DEMO:

  • html
Hello world!
  • Javascript
html2canvas(document.querySelector("#capture")).then(canvas => { document.body.appendChild(canvas)});

详细配置

9408efeb61f8ac32b164598ee432d0a1.png

如果你想将某些Elements 排除在渲染之外,可以data-html2canvas-ignore向这些元素添加属性,html2canvas会将它们从渲染中排除。如果要加载位于页面原点之外的图像,可以使用代理加载图像,详情参考官网介绍

官网示例截图

7dc3a15efa63d5af9621444aa77ad024.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,以下是使用html2canvas截图百度地图覆盖物的方法: 1. 首先,在img标签中添加crossOrigin="anonymous"属性,以允许跨域访问图片。 2. 在服务端开启跨域访问,通过设置response的Header来实现。例如,使用response.setHeader("Access-Control-Allow-Origin","*")来允许所有来源的跨域请求。 3. 在前端加载图片后再进行截图,确保图片已经加载完毕。这一步很重要,可以使用Promise或者回调函数来确保图片加载完成。 4. 在html2canvas的配置中,将useCORS设置为true,以启用跨域访问。 5. 使用html2canvas地图进行截图,并将截图保存为PNG格式或进行其他操作。 以下是一个示例代码: ```javascript // 加载百度地图 var map = new BMap.Map("mapContainer"); // 添加覆盖物 var marker = new BMap.Marker(new BMap.Point(116.404, 39.915)); map.addOverlay(marker); // 等待图片加载完成后再进行截图 function captureMap() { return new Promise((resolve, reject) => { var img = new Image(); img.onload = function() { resolve(img); }; img.onerror = function() { reject(new Error("Failed to load image")); }; img.src = "http://example.com/path/to/image.jpg"; // 替换为实际的图片地址 }); } // 使用html2canvas进行截图 function captureScreenshot() { html2canvas(document.body, { useCORS: true }).then(canvas => { // 将截图保存为PNG格式或进行其他操作 downLoad(saveAsPNG(canvas)); }); } // 调用函数进行截图 captureMap().then(() => { captureScreenshot(); }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值