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