2012-04-23 2 views
10

Я гугле столько, сколько я могу, но я только нашел PHP класс, который призывает Inkscape оказать SVG, поэтому я спрашиваю здесь:Rendering файл SVG в PNG или JPEG в PHP

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

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

ответ

20

Проверьте, установлен ли 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'); 

Существует много тем, которые обсуждают это. Особенно полезной является эта резьба: Convert SVG image to PNG with PHP

+1

К сожалению, это не так, и я не могу установить его. Все, что у меня есть, это PHP и GDLib. Это должно быть возможно с помощью GDLib. Это почти просто перевод, есть функция GDLib почти для каждого тега SVG. – DanRedux

+0

GD не поддерживает SVG. Wikimedia поддерживает * ImageMagik *, * sodipodi *, * inkscape *, * batik *, * rsvg *, * imgserv *. Если вы не можете установить что-либо еще, возможно, вы можете проверить, могут ли эти конвертеры работать автономно, и вы можете вызывать его из вашего PHP-скрипта. –

Смежные вопросы