2012-04-23 12 views
10

Googled lo más que pueda, pero sólo he encontrado una clase PHP que hace un llamamiento a Inkscape para hacer que el SVG, por lo que pido aquí:Rendering un archivo SVG a PNG o JPEG en PHP

Tengo un archivo SVG válido generado de alguna manera (o cargado por un cliente). Necesito convertir esto en un JPG o PNG utilizando solo PHP y/o GDLib, ya que SVG no es compatible con todos los navegadores.

No tengo la opción de instalar nada, por lo que una clase que convierta SVG a PNG usando GDLib sería la más ideal.

Respuesta

20

Compruebe si está instalado ImageMagick (puede encontrarlo usando phpinfo). Si es así, puede usar el siguiente código para cubrir un 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'); 

Hay muchos hilos que discuten esto. Uno que es particularmente útil es este hilo: Convert SVG image to PNG with PHP

+1

Lamentablemente, no lo es, y no puedo instalarlo. Todo lo que tengo es PHP y GDLib. DEBE ser posible con GDLib. Es casi una traducción, hay una función GDLib para casi cada etiqueta SVG. – DanRedux

+0

GD no es compatible con SVG. Wikimedia admite * ImageMagik *, * sodipodi *, * inkscape *, * batik *, * rsvg *, * imgserv *. Si no puede instalar nada más, tal vez pueda ver si esos conversores pueden ejecutarse de manera independiente y puede invocarlo desde su script PHP. –