我需要从PHP脚本中创建一个PNG/JPEG图像……简单来说
这段代码将创建一个HTML表格,并在该页面中包含一张图片。我需要将整个页面保存为图像,将该图像保存在我的服务器上,并返回图像的路径(使用Web服务)。
我可以很好地使用imagejpg函数创建图像。我的问题是如何将HTML转换为图像,因为这些过程是通过Web服务进行的,无法进行屏幕截图。
请帮助我使用PHP将HTML转换为图像。
提前感谢您的帮助。
我需要从PHP脚本中创建一个PNG/JPEG图像……简单来说
这段代码将创建一个HTML表格,并在该页面中包含一张图片。我需要将整个页面保存为图像,将该图像保存在我的服务器上,并返回图像的路径(使用Web服务)。
我可以很好地使用imagejpg函数创建图像。我的问题是如何将HTML转换为图像,因为这些过程是通过Web服务进行的,无法进行屏幕截图。
请帮助我使用PHP将HTML转换为图像。
提前感谢您的帮助。
您可以从此链接下载wkhtmltoimage。该软件有适用于所有操作系统的版本,因此不应该存在问题。然后您可以这样使用它:
$path="wkhtmltoimg/wkhtmltoimage.exe"; //path to your executable
$url="http://google.com";
$output_path="test.png";
shell_exec("$path $url $output_path");
需要注意的一点是,如果PHP处于安全模式,shell_exec将无法工作,并且您将无法进行转换。
您可以使用PHP PhantomJS将HTML页面的屏幕截图保存到本地磁盘:
<?php
use JonnyW\PhantomJs\Client;
$client = Client::getInstance();
$width = 800;
$height = 600;
$top = 0;
$left = 0;
$request = $client->getMessageFactory()->createCaptureRequest('http://example.com', 'GET');
$request->setOutputFile('/path/to/save/capture/file.jpg');
$request->setViewportSize($width, $height);
$request->setCaptureDimensions($width, $height, $top, $left);
$response = $client->getMessageFactory()->createResponse();
// Send the request
$client->send($request, $response);