我正在尝试使用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;
?>