Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript(GIF/PNG)中创建DIV的图像_Javascript_Image - Fatal编程技术网

在JavaScript(GIF/PNG)中创建DIV的图像

在JavaScript(GIF/PNG)中创建DIV的图像,javascript,image,Javascript,Image,我想知道是否有一个JavaScript库可以让我从DIV的内容生成一个图像 基本上,这是一些服务器端打印代码所必需的,需要从浏览器打印背景 我最终想做的是将DIV内容编码成PNG格式,并使用打印操作发布编码后的数据 如果可能的话,有什么想法吗 [编辑]我拥有的是一个地图应用程序,其中背景数据直接从图像服务器进入浏览器DIV(想想谷歌地图)。那个div是我的主要数据。当按下“打印”按钮时,服务器会根据它知道的数据生成PDF,但对浏览器的背景数据一无所知。我真正想要的是能够以某种方式为服务器提供浏览

我想知道是否有一个JavaScript库可以让我从DIV的内容生成一个图像

基本上,这是一些服务器端打印代码所必需的,需要从浏览器打印背景

我最终想做的是将DIV内容编码成PNG格式,并使用打印操作发布编码后的数据

如果可能的话,有什么想法吗


[编辑]我拥有的是一个地图应用程序,其中背景数据直接从图像服务器进入浏览器DIV(想想谷歌地图)。那个div是我的主要数据。当按下“打印”按钮时,服务器会根据它知道的数据生成PDF,但对浏览器的背景数据一无所知。我真正想要的是能够以某种方式为服务器提供浏览器背景图像

干杯,
Ro

您可以从JavaScript创建图像标记,但不能创建其中的实际图像:JS没有为位图分配内存的命令,也没有在位图上渲染任何内容的命令

通常的解决方案是在服务器上安装一个报告生成器,根据请求创建映像。看或看


[编辑]根据您的评论,解决方案很简单:检查DIV,找到背景图像的URL,并用IMG元素替换DIV。将URL放入SRC属性,然后打印。

我真的不认为这在浏览器上是可行的,当然,没有某种插件也不行


您可以向web服务器发送一些坐标信息或其他信息,然后让web服务器从图像服务器请求相同的地图图像吗?

只有在IE5中才可以生成图像:(然后由于安全原因,它被删除了。我仍然缺少它。

使用
画布也可以:


我想我已经想出了一个办法

1) 当用户按下打印时,询问DIV
2) 该DIV上的图像由OpenLayers API生成
3) 抓取每个图像的URL
4) 抓取每个图像在屏幕上的位置
5) 将屏幕位置转换为真实世界的位置(我有用于此的API)
6) 作为打印的一部分,发送所有图像URL及其真实范围

7) 允许服务器重新请求图像并将其绘制到适当的位置。

是否必须在浏览器端执行此操作?我已经看到了在哪里可以进行服务器端调用,服务器响应上的MIME类型是映像类型。我想我想到的例子是在db中使用b64编码的JPEG,但过程应该是相同的。回答将是当前在您的DIV中的数据。如果我偏离了基准,很抱歉。

非常有趣的问题


实际上,我使用ajax解决了这个问题(将图像的位置传输到服务器,服务器从片段创建一个图像,保存它并将url发送到客户端)。我不太喜欢这个解决方案,但我还不知道其他解决方案

没错,这就是其他事情的运作方式。。。。我拥有的是一个映射应用程序,其中背景数据从图像服务器直接进入浏览器DIV(想想谷歌地图)。那个div是我的主要数据。当按下“打印”按钮时,服务器会根据它知道的数据生成PDF,但对浏览器的背景数据一无所知。我真正想要的是能够以某种方式为服务器提供浏览器背景图像!难道没有新的“画布”吗?我想你可以用它来画东西?是的,如果打印引擎支持,画布也应该可以工作。我有一个映射应用程序,背景数据直接从图像服务器进入浏览器DIV(想想谷歌地图)。那个div是我的主要数据。当按下“打印”按钮时,服务器会根据它知道的数据生成PDF,但对浏览器的背景数据一无所知。我真正想要的是能够以某种方式为服务器提供浏览器背景图像!你能用更多的解释来扩展你的答案吗?这不是这个问题的准确答案,尽管它可能解决了你的问题。问题是如何将div捕获为图像。看看这个答案