PHP code example of avvertix / html-shot
1. Go to this page and download the library: Download avvertix/html-shot library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
avvertix / html-shot example snippets
use HtmlShot\Font;
use HtmlShot\HtmlShot;
$png = HtmlShot::render(
'<div style="display:flex; width:100%; height:100%; align-items:center;
justify-content:center; background:#09090b; color:#fff;
font-family:Inter; font-size:64px;">Hello!</div>',
[
'width' => 1200,
'height' => 628,
'format' => 'png',
'fonts' => [
Font::fromFile('/fonts/Inter-Regular.ttf', family: 'Inter', weight: 400),
Font::fromFile('/fonts/Inter-Bold.ttf', family: 'Inter', weight: 700),
],
],
);
file_put_contents('card.png', $png);
use HtmlShot\Context;
use HtmlShot\Renderer;
$context = new Context;
$context->loadFontFile('/fonts/Inter-Regular.ttf', family: 'Inter', weight: 400);
$context->loadFontFile('/fonts/Inter-Bold.ttf', family: 'Inter', weight: 700);
$renderer = new Renderer($context);
foreach ($posts as $post) {
$html = renderTemplate($post); // your own HTML builder
// 1× PNG
file_put_contents("{$post->slug}.png", $renderer->render($html, 1200, 628));
// 2× WebP for HiDPI displays
$webp = $renderer->render($html, 1200, 628, 'webp', devicePixelRatio: 2.0);
file_put_contents("{$post->slug}@2x.webp", $webp);
}
ini
extension=ffi
ffi.enable=true
json
{
"packages": [
{
"name": "avvertix/html-shot",
"version": "v0.1.0",
"assets": {
"libtakumi_php.so": { "url": "…/v0.1.0/libtakumi_php.so", "digest": "sha256:…" },
"libtakumi_php.dylib": { "url": "…/v0.1.0/libtakumi_php.dylib", "digest": "sha256:…" },
"takumi_php.dll": { "url": "…/v0.1.0/takumi_php.dll", "digest": "sha256:…" }
},
"installed-at": "2026-06-28T08:46:14Z"
}
]
}