Gmagick конвертирует SVG в PNG с прозрачным фоном

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

Пример кода:

$im = new Gmagick();
$im->readImageBlob('<?xml version="1.0"?>'.$svg);
$im->setImageBackgroundColor(new \GmagickPixel('transparent'));
$im->setimagecolorspace(\Gmagick::COLORSPACE_TRANSPARENT);
$im->scaleImage(1024,1024,1);
$im->setResolution ("300","300");
$im->setImageFormat('PNG32');
$im->setImageDepth(32);
$im->getImageBlob();

Пример SVG:

<svg width="640" height="480">
<rect height="254" width="459" y="117" x="99" stroke-width="5" stroke="#000000" fill="#FF0000" />
<rect width="241.35593" height="211.52542" x="387.7966" y="225.08475" />
</svg>

С Графической Магией напрямую у меня нет проблем
примерная линия командира:

gm convert -size 1200x1200 -background none svg.svg svg.png

Как я могу это исправить?


Изменить: в настоящее время я использую этот код

shell_exec("gm convert -resize ".$width."x".$height." -background none svg.svg svg.png");

Это работает, но я ненавижу использовать shell_exec, это грязно.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]