У меня есть изображение SVG, которое генерируется плагином WordPress.Я хочу преобразовать его в PNG для дальнейших действий.
Плагин может сделать это успешно через JS.В результате получается следующее изображение: ![enter image description here](https://i.stack.imgur.com/AuENn.png)
Когда я использую imagick для преобразования SVG в png, я получаю в результате: ![enter image description here](https://i.stack.imgur.com/q4faK.png)
Код SVG выглядит следующим образом:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-zoom="11.81102361" height="290" width="210" data-main="1">
<svg y="62" x="17" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" preserveAspectRatio="none" width="178" height="133"><g><image x="0" y="0" width="178" preserveAspectRatio="none" height="133" xlink:href="[BASE64 IMAGE CODE]"/></g></svg>
</svg>
Полная версия здесь: https://pastebin.com/vzn7BP2d
Я использую этот код для преобразования:
$svg = file_get_contents('front-test.svg');
$im = new Imagick();
$im->setBackgroundColor(new ImagickPixel('transparent'));
$im->setResolution(300, 300); // for 300 DPI example
$im->readImageBlob('<?xml version="1.0" encoding="UTF-8" standalone="no"?>'.$svg);
$im->setImageFormat("png24");
//$im->resizeImage(250, 250, imagick::FILTER_LANCZOS, 1);
$im->writeImage('front-test.png');
$im->clear();
$im->destroy();
Кто-нибудь знает, почему это происходит и как я могу решить это?Необходимо, чтобы изображение было правильно расположено на «холсте», поскольку оно является шаблоном для печати футболок и должно быть точным.