При преобразовании svg в png искажает цвет
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 123.73 36.69">
<defs>
<style type="text/css">
<![CDATA[
text.cls-2 {
opacity:0.5;
font-size:20px;
fill:#d0d0d0;
font-family:Roboto-Medium, Roboto;
font-weight:500;
letter-spacing:0.01em;
}
]]>
</style>
</defs>
<g>
<text class="cls-2" transform="translate(29.68 17.11)">ID 123456</text>
</g>
</svg>
$usmap = $_SERVER['DOCUMENT_ROOT'] . '/path/img.svg';
$im = new Imagick();
$im->setBackgroundColor(new ImagickPixel('transparent'));
$svg = file_get_contents($usmap);
$im->readImageBlob('<?xml version="1.0" encoding="UTF-8" standalone="no"?>' . $svg);
$im->setImageFormat("png24");
$im->writeImage($_SERVER['DOCUMENT_ROOT'] . '/path/watermark.png');
$im->clear();
$im->destroy();
Результат:
Хотя цвет должен быть бежевым.
Ответы (1 шт):
Автор решения: Александр Маринов
→ Ссылка
Не указал реальные размеры svg
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 50" width="1920" height="581">
<defs>
<style type="text/css">
<![CDATA[
text.cls-2 {
opacity:0.9;
font-size:20px;
fill:#d0d0d0;
font-family:Roboto-Medium, Roboto;
font-weight:500;
letter-spacing:0.01em;
}
]]>
</style>
</defs>
<g>
<text class="cls-2" text-anchor="end" x="83%" y="15">ID 123456</text>
</g>
</svg>
$usmap = $_SERVER['DOCUMENT_ROOT'] . '/path/img.svg';
$im = new Imagick();
$im->setBackgroundColor(new ImagickPixel('transparent'));
$svg = file_get_contents($usmap);
$im->readImageBlob('<?xml version="1.0" encoding="UTF-8" standalone="no"?>' . $svg);
$im->setImageFormat("png24");
$im->writeImage($_SERVER['DOCUMENT_ROOT'] . '/path/watermark.png');
$im->clear();
$im->destroy();

