将div内容导出到图像

时间:2011-10-07 06:58:59

标签: php javascript jquery

目前我正在开展一个项目,网站用户可以通过拖放礼物来设计礼品墙。拖放和排序工作完美,我可以将生成的giftwall存储到数据库中。在收件人方系统列出所有礼品图像在同一序列发件人发送,所以它在视觉上看起来像礼品墙。我想允许用户将此礼品墙存储到单个图像中,以便他们可以将礼品墙存储到图像相册中。在当前系统中,它将所有个人礼物列入主要包装div中的单个div。如何将此包装器div导出到图像,使其看起来与HTML相同。任何帮助将非常感激。等待回复。

谢谢!

6 个答案:

答案 0 :(得分:0)

我不知道是否有使用纯javascript的方法,但您可以在服务器上生成图像并将其发回。

答案 1 :(得分:0)

我从未听说过通过JS将浏览器的视口保存到图像文件中。我认为只有通过创建SVG或使用HTML5画布才能实现。

答案 2 :(得分:0)

我前一刻问了同样的事情。
HTML div to screenshot?

结论是...... JS无法实现。 PHP也可能有问题。
使用可以使用在线服务进行屏幕捕获,例如browserhots,但它不是实时的,并且不能很好地呈现所有内容。

我根据情况使用了解决方法。 重新创建创建映像的所有DOM / HTML元素(从数据库加载参数,并生成DOM)。将所有内容包装在一个容器div中,并将其缩小到您需要的大小。

我知道,这不是最漂亮的解决方案,而是我能够解决的唯一解决方案。

答案 3 :(得分:0)

使用<canvas>,您可以创建与其在页面上的外观类似的图像。试试这种方式: 获取包装器<div>的大小并创建相同的canvas元素。然后在div包装器中获取每个图像的位置,并在画布上以相同的大小绘制相同位置的图像。 如果您需要绘制其他控件(如按钮或文本框),事情可能会更难。

所有现代桌面浏览器现在都支持<canvas>

答案 4 :(得分:0)

你可以使用html2canvas,这还不完美。或者在div中存储浏览器的元素偏移量,然后使用GD或ImageMagick将它们组合成图像

答案 5 :(得分:0)

也许这可能有用:http://html2canvas.hertzen.com/