【问题标题】:taking a screenshot of some element in the html截取 html 中某些元素的屏幕截图
【发布时间】:2011-09-27 15:24:52
【问题描述】:

所以我想知道,如果我有一个 div,其中包含由一些制造商渲染的谷歌地图的地图,并且我想为该元素拍照,我该怎么做?我发现 this solutions 这是一种方法我需要什么,但问题是发送 url 对我没有帮助,我需要带有所有标记的特定 Div。对于服务器端,我使用 C#,对于客户端,使用带有 jquery 的 asp.net。还有谷歌地图apiV3来处理地图

【问题讨论】:

    标签: c# jquery asp.net google-maps-api-3 screenshot


    【解决方案1】:

    看看 Nihilogic Labs 的 Canvas2Image 库:

    http://www.nihilogic.dk/labs/canvas2image/

    这是一个如何通过 JavaScript 截取元素的示例:

    var oCanvas = document.getElementById("thecanvas");    
    Canvas2Image.saveAsPNG(oCanvas);
    

    编辑

    您也可以看看Html2CanvasFlashCanvas。我相信其中之一支持早期的浏览器(不支持 HTML5 的浏览器)。

    【讨论】:

    • 您好,感谢您的提问。不能使用 html 5 我需要支持包括 IE 在内的所有浏览器
    • 好吧,经过大量阅读,代码和测试 html 将是选项
    【解决方案2】:

    使用您提到的链接中的方法并将生成的图像裁剪为您的 div 的尺寸。您可以在 JavaScript 中使用 myDiv.getBoundingClientRect() 来获取 div 的尺寸。

    使用WebBrowser control,您可以使用 html 或 JavaScript 操作文档,以使页面处于您需要截取屏幕截图的状态。

    【讨论】:

    • 您好,谢谢询问链接并不能解决我的问题,因为地图图片取决于一些未注入 url 的行为
    • 使用WebBrowser control,您可以操作文档。查看WebBrowser.Document 中可用的属性和方法。特别有用的可能是WebBrowser.Document.InvokeScript()。您可以操作 html 或运行 JavaScript 以使文档处于创建屏幕截图所需的状态。
    【解决方案3】:

    您是否考虑过使用 Google Maps Static API - 这会将带有标记的地图图像呈现为 PNG。

    【讨论】:

    • 好的,但是我怎样才能将参数发送到地图中的所有标记和地图本身?有没有办法做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    相关资源
    最近更新 更多