小编fun*_*eer的帖子

通过合并其他SVG文件创建SVG图像

我喜欢基于两个数组创建一个svg文件,第一个数组包含svg文件的路径,这些文件应该组合在一个由另一个数组描述的svg资源中

模式图形的路径数组

这些模式可用作矢量文件.每个模式的大小为200x200px.
请参阅下面文件的内容.

$pathesToPatternsArray = array("0"=>"circle.svg", "1"=>"square.svg");
Run Code Online (Sandbox Code Playgroud)

描述图像上图案位置数组

$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);
Run Code Online (Sandbox Code Playgroud)

结果:

所以我们得到了一个包含5行的图像.前两行仅包含圆圈.接下来的两行只包含正方形.最后一行包含"方形,圆形,方形,圆形"

伪代码

这是我认为它可以工作的方式,但不幸的是我不知道如何处理SVG合并.我希望你能帮助我.我认为它可能适用于GD,Imagick或简单的文本文件处理,但我还没有找到解决方案.

<?php

$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();
Run Code Online (Sandbox Code Playgroud)

triangle.svg的内容

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Ebene_1" …
Run Code Online (Sandbox Code Playgroud)

php svg image-processing

4
推荐指数
1
解决办法
3914
查看次数

标签 统计

image-processing ×1

php ×1

svg ×1