преобразовать изображения .SVG с помощью PHP - Image Magick - PullRequest
2 голосов
/ 25 июня 2010

Необходимо преобразовать файлы .svg и сохранить их в формате .svg или jpeg.Проблема с ImageMagick заключается в том, что он сохраняет преобразованные файлы на белом фоне, а мне он крайне необходим на прозрачном.

Есть предложения с другими инструментами или чистый php?Был бы очень признателен.

Ответы [ 3 ]

4 голосов
/ 25 июня 2010

Правильная команда ImageMagick должна быть:

convert -background none somefile.svg somefile.png

Вы должны использовать PNG или GIF в качестве формата файла, поскольку JPEG не поддерживает прозрачность.

Чтобы использовать его в PHP:

<?php
$svg_file_name = "somefile.svg";
$png_file_name = "somefile.png;
system("convert -background none $svg_file_name $png_file_name");
?>
0 голосов
/ 21 сентября 2012

Вы не можете сделать прозрачность с JPEG, но вот как сохранить SVG как PNG с прозрачным фоном ...

$image = new Imagick();
$image->setBackgroundColor(new ImagickPixel('transparent')); 
$image->readImage('somefile.svg');

// ... do any image manipulation you need to here ... 

$image->setImageFormat('png32');
$image->writeImage('somefile.png');
0 голосов
/ 25 июня 2010

Я сомневаюсь, что вы можете легко преобразовать файлы SVG из php. Файлы SVG - это, в основном, файлы XML, а стандарт является общедоступным, поэтому любой может сделать конвертер ...

Я бы выбрал внешний инструмент, он проще и быстрее, чем обработка из скриптового языка, и намного безопаснее, когда автор скрипта не знает, как найти переключатели командной строки для приложения и что файлы JPEG не поддерживают прозрачность:)

пойти на convert -background none somefile.svg somefile.png, как сказал Дженс ...

...