首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在服务器端截取呈现的DOM的屏幕快照吗?

可以在服务器端截取呈现的DOM的屏幕快照吗?
EN

Stack Overflow用户
提问于 2012-04-13 20:09:05
回答 6查看 1.2K关注 0票数 2

在我的web应用程序中,用户可以创建一些保存在数据库中的HTML/CSS标记。我想提供一个‘缩略图’的标记,例如在总览视图。

由于缩略图应该在200x200px左右,而原始标记应该在900x900px左右查看,所以我必须找到一种方法来‘缩放’该标记:它应该就像我以900px拍摄了渲染标记的屏幕截图,并将其缩小到200px。

有没有人知道用JavaScript或PHP能做到这一点?或者是另一种服务器端语言?我想避免使用任何第三方小程序,如ActiveX。

编辑:我猜是某种混搭,在客户端截取屏幕截图,然后发送到服务器也是可以的。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-04-13 20:12:49

您可以使用WKHTMLTOPDF。它还具有保存图像的功能,称为WKHTMLTOIMAGE (我认为这是一个不同的发行版,但您可以从同一链接下载它)。您可以在PHP中使用exec()作为系统调用来运行它。使用xvfb这样的虚拟缓冲区,您可以在服务器上运行WKHTMLTOIMAGE headless。它是基于WebKit的,所以产生的结果真的很好…

你可以使用标准的PHP函数来缩放结果图像,比如下面这些帖子中所描述的:

你可能想看看我对这个问题的回答,HTML2PDF in PHP - convert utilities & scripts - examples & demos,也许它对你也有帮助。

票数 5
EN

Stack Overflow用户

发布于 2012-04-13 20:13:53

最好的办法是将工作分成两部分:制作一个屏幕截图,并将其缩小到200x200。对于第一部分,您需要一个命令行工具或库来将HTML直接呈现为位图文件(可能是PNG);我暂时不知道有什么工具或库,但如果您真的下定决心,我相信在webkit和libpng周围创建一个小包装器应该不会太难,如果您知道自己在做什么的话。对于伸缩,您可以使用gd (在大多数PHP设置上配置)或ImageMagick (功能更强大)。一旦你有了这两个,就只需要编写正确的胶水来将它们粘合在一起。

票数 1
EN

Stack Overflow用户

发布于 2012-04-13 20:15:05

简而言之,没有“简单”的方法可以做到这一点。

但是,这只是Website screenshots using PHP的复制品

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10140529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档