Подтвердить что ты не робот

Рендеринг SVG файла в PNG или JPEG в PHP

Я искал как можно больше, но я нашел только класс PHP, который требует, чтобы Inkscape отображал SVG, поэтому я прошу здесь:

У меня есть файл SVG, сгенерированный каким-то образом (или загруженный клиентом). Мне нужно сделать это в JPG или PNG, используя только PHP и/или GDLib, поскольку SVG не поддерживается всеми браузерами.

У меня нет возможности установить что-либо, поэтому класс, который преобразует SVG в PNG с использованием GDLib, будет наиболее идеальным.

4b9b3361

Ответ 1

Проверьте, установлен ли ImageMagick (вы можете узнать, используя phpinfo). Если это так, вы можете использовать следующий код для покрытия PNG.

$image = new Imagick();
$image->readImageBlob(file_get_contents('image.svg'));
$image->setImageFormat("png24");
$image->resizeImage(1024, 768, imagick::FILTER_LANCZOS, 1); 
$image->writeImage('image.png');

Есть много тем, которые обсуждают это. Особенно полезен этот поток: Преобразование изображения SVG в PNG с PHP