我喜欢基于两个数组创建一个svg文件,第一个数组包含svg文件的路径
应该组合在另一个数组描述的一个svg资源中
模式图形的路径数组
这些模式可用
作为矢量文件.每个图案的大小为200x200px
请参阅以下文件的内容.
$pathesToPatternsArray = array("0"=>"circle.svg", "1"=>"square.svg");
描述图像上图案位置的数组
$positionOnTheImageArray = array(
0=>array(0,0,0,0),
1=>array(0,0,0,0),
2=>array(1,1,1,1),
3=>array(1,1,1,1),
4=>array(1,0,1,0);
结果:
所以我们得到了一个包含5行的图像.前两行仅包含圆圈.接下来的两行只包含正方形.最后一行包含“方形,圆形,方形,圆形”
伪代码
这是我认为它可以工作的方式,但不幸的是我不知道如何处理SVG合并.我希望你能帮助我.我认为它可能适用于GD,Imagick或简单的文本文件处理,但我还没有找到解决方案.
$svgOutputfile = createSVGFileRessource();
foreach($positionOnTheImageArray AS $row => $cellArray)
{
$cell = 0;
foreach($cellArray AS $selectedPattern)
{
$pattern = loadPattern($pathesToPatternsArray[$selectedPattern]);
$svgOutputfile->write($row,$cell,$pattern);
$cell++;
}
$svgOutputfile->save();
triangle.svg的内容
width="200px" height="200px" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve">
square.svg的内容
width="200px" height="200px" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve">
Finaly
我真的很期待能够帮助我找到解决方案的答案.