在我的web应用程序中,用户可以创建一些保存在数据库中的HTML/CSS标记。我想提供一个‘缩略图’的标记,例如在总览视图。
由于缩略图应该在200x200px左右,而原始标记应该在900x900px左右查看,所以我必须找到一种方法来‘缩放’该标记:它应该就像我以900px拍摄了渲染标记的屏幕截图,并将其缩小到200px。
有没有人知道用JavaScript或PHP能做到这一点?或者是另一种服务器端语言?我想避免使用任何第三方小程序,如ActiveX。
编辑:我猜是某种混搭,在客户端截取屏幕截图,然后发送到服务器也是可以的。
发布于 2012-04-13 20:12:49
您可以使用WKHTMLTOPDF。它还具有保存图像的功能,称为WKHTMLTOIMAGE (我认为这是一个不同的发行版,但您可以从同一链接下载它)。您可以在PHP中使用exec()作为系统调用来运行它。使用xvfb这样的虚拟缓冲区,您可以在服务器上运行WKHTMLTOIMAGE headless。它是基于WebKit的,所以产生的结果真的很好…
你可以使用标准的PHP函数来缩放结果图像,比如下面这些帖子中所描述的:
你可能想看看我对这个问题的回答,HTML2PDF in PHP - convert utilities & scripts - examples & demos,也许它对你也有帮助。
发布于 2012-04-13 20:13:53
最好的办法是将工作分成两部分:制作一个屏幕截图,并将其缩小到200x200。对于第一部分,您需要一个命令行工具或库来将HTML直接呈现为位图文件(可能是PNG);我暂时不知道有什么工具或库,但如果您真的下定决心,我相信在webkit和libpng周围创建一个小包装器应该不会太难,如果您知道自己在做什么的话。对于伸缩,您可以使用gd (在大多数PHP设置上配置)或ImageMagick (功能更强大)。一旦你有了这两个,就只需要编写正确的胶水来将它们粘合在一起。
发布于 2012-04-13 20:15:05
简而言之,没有“简单”的方法可以做到这一点。
但是,这只是Website screenshots using PHP的复制品
https://stackoverflow.com/questions/10140529
复制相似问题