如何在PHP中渲染和保存网页作为图像,宽度可能为600px。如何在不使用浏览器的情况下在PHP中呈现页面?如何以给定的分辨率和图像格式(jpeg)保存?该功能类似于Google预览,但它不会在翻转中显示。
与此问题类似,在C#中回答。 How to save a web page as image
谢谢!
答案 0 :(得分:7)
你应该得到wkhtmltoimage
,这在PHP中非常容易使用:
exec("../wkhtmltoimage --crop-w 600 http://example.com/ output.png");
还有其他选项,而不是--crop-w
或--width 600
,最好在之后使用GD或imagemagick缩小缩放。
答案 1 :(得分:2)
你不能在纯PHP中这样做,你总是需要一个外部渲染器来获得好的结果。
您最好的选择是使用browsershots.org API之类的外部服务,这样您就不会在服务器上产生额外负载。
如果您有资源可以刻录,您可以使用另一种方法(仍然在您的服务器上运行,而不是PHP),如mario's answer中所述,称为wkhtmltoimage。请记住,这不会被推荐(事实上,可能甚至不可能)在共享主机上。