Php 如何将svg元素添加到Imagick图像?
我正在尝试使用Imagick从svg文件的各个组件拼凑png。我能够输入文本并按预期操作。现在,我如何开始添加各种svg组件。在下面的示例中,我有一个示例变量,其中包含一个表示svg元素的字符串。我必须使用SVG元素格式和属性,如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=
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修复程序实现时,它打破了我组装东西的方式。修复了能够添加图像和文本的问题。