如何在 PHP 中创建网页的图像?

Posted

技术标签:

【中文标题】如何在 PHP 中创建网页的图像?【英文标题】:How do you create an image of a web page in PHP? 【发布时间】:2011-08-17 21:47:26 【问题描述】:

如何在 php 中将网页呈现并保存为图像,宽度可能为 600 像素。如何在不使用浏览器的情况下在 PHP 中呈现页面?如何以给定的分辨率和图像格式(jpeg)保存它?该功能类似于 Google Preview,只是它不会以鼠标悬停的方式显示。

类似于这个问题,在 C# 中回答。 How to save a web page as image

谢谢!

【问题讨论】:

How to save webpage as a image file using PHP?的可能重复 酷。感谢所有伟大的资源! 【参考方案1】:

你应该得到wkhtmltoimage,它很容易在 PHP 中使用:

exec("../wkhtmltoimage --crop-w 600 http://example.com/ output.png");

还有其他选项,而不是 --crop-w--width 600,之后使用 GD 或 imagemagick 缩小缩放可能会更好。

【讨论】:

谢谢。看起来它只能转换为 PDF 和 PS。我想我可以使用另一个库来转换为 jpg... 不,它有两个版本。您找到的是wkhtmltopdf 版本。但也有 ..toimage 二进制文件,这正是您想要的。 (使用起来也更简单。) 我为 wkhtltoimage 找到了 code.google.com/p/wkhtmltopdf/downloads/…,但它显示的是 0.10 版并且已被贬低。没有文档... 这是我安装的版本wkhtmltoimage 0.10.0 rc2。这些版本很快就会过时,我认为这就是它被标记为已弃用的原因。文档确实很薄:code.google.com/p/wkhtmltopdf/wiki/IntegrationWithPhp 谢谢。经过广泛的研究,看起来这是唯一相对简单的unix解决方案。 Mac 和 Windows 有其他看起来更容易的解决方案(!)。另外,如果这不起作用,我可以使用 wkhtmltopdf,然后使用 ImageMagick 转换为 jpeg。它不是很有效,但它是免费且可行的。我想知道它是否看起来不错...【参考方案2】:

你不能在纯 PHP 中做到这一点,你总是需要一个外部渲染器来获得一个好的结果。

最好的办法是使用外部服务,例如browsershots.org API,这样就不会在服务器上产生额外的负载。

如果您有资源要刻录,您可以使用另一种方法(仍在您的服务器上运行,只是不是 PHP),称为 wkhtmltoimage,如 mario's answer。请记住,在共享主机上不建议这样做(事实上,甚至可能不可能)。

【讨论】:

这确实是一个不错的 API。我也会检查一下(目前在一个项目中使用更不稳定的服务..)

以上是关于如何在 PHP 中创建网页的图像?的主要内容,如果未能解决你的问题,请参考以下文章

在wt(c ++)中创建后如何更新网页

如何使用 REST API 在共享点中创建网页?

简要说明如何在html中创建锚点链接?

如何在一个网页中创建显示由Web-Chat收集的数据的侧窗口或iframe?

如何在网页中创建哔声?

如何在 URL 中没有 .php 扩展名的情况下执行 PHP 网页?