Php 如何将svg元素添加到Imagick图像?

Php 如何将svg元素添加到Imagick图像?,php,svg,imagick,Php,Svg,Imagick,我正在尝试使用Imagick从svg文件的各个组件拼凑png。我能够输入文本并按预期操作。现在,我如何开始添加各种svg组件。在下面的示例中,我有一个示例变量,其中包含一个表示svg元素的字符串。我必须使用SVG元素格式和属性,如r,有时可能由变量设置 编辑:总而言之,我只是将带有一些动态设置的svg转换为png <?php //SVG ELEMENT TO INCORPORATE $element = '<circle cx="50" cy="50" r="40" stroke=

我正在尝试使用Imagick从svg文件的各个组件拼凑png。我能够输入文本并按预期操作。现在,我如何开始添加各种svg组件。在下面的示例中,我有一个示例变量,其中包含一个表示svg元素的字符串。我必须使用SVG元素格式和属性,如
r
,有时可能由变量设置

编辑:总而言之,我只是将带有一些动态设置的svg转换为png

<?php

//SVG ELEMENT TO INCORPORATE
$element = '<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />';

//MESSAGE
$message = "Get this SVG to work.";

//FILENAME
$fileName = "testSVG" . microtime(true) . ".png";

//SET THE SIZE, BACKGROUND, AND FORMAT
$image = new Imagick();
$image->newImage(1200, 630, new ImagickPixel('pink'));
$image->setImageFormat('png');

//NEW DRAW ELEMENT
$draw = new ImagickDraw();

//FONT PROPERTIES 
$draw->setFont('Impact.ttf');
$draw->setFontSize(50);
$draw->setFillColor("red");
$draw->setStrokeAntialias(true);
$draw->setTextAntialias(true);

//FONT METRICS 
$metrics = $image->queryFontMetrics($draw, $message);

//ADD TEXT TO CANVAS 
$draw->annotation(5, $metrics['ascender']+5, $message);

//DRAW THE IMAGE
$image->drawImage($draw);

//SAVE THE IMAGE 
file_put_contents($fileName, $image);

//DISPLAY THE IMAGE
header('Content-type: image/png');
echo $image;

?>


您没有很好地解释您要做的事情。但是听起来你想找到一个专门用来创建SVG文件的东西,而不是
Imagick
类。@miken32在ImageTraPick之前,我能够通过组合不同目录中的各种SVG元素来缝合完整的SVG文件。我将构建一个空白的svg,并用包含单个svg元素的字符串填充它。组装后,整个文件被转换为png。当tragick修复程序实现时,它打破了我组装东西的方式。修复了可以添加图像和文本的问题。你没有很好地解释你想做什么。但是听起来你想找到一个专门用来创建SVG文件的东西,而不是
Imagick
类。@miken32在ImageTraPick之前,我能够通过组合不同目录中的各种SVG元素来缝合完整的SVG文件。我将构建一个空白的svg,并用包含单个svg元素的字符串填充它。组装后,整个文件被转换为png。当tragick修复程序实现时,它打破了我组装东西的方式。修复了能够添加图像和文本的问题。