如何从SVG文件中提取的高度和宽度(how to extract height and width

2019-09-30 05:05发布

例:

<svg width="23" height="22" xmlns="http://www.w3.org/2000/svg">
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
<g>
<title>Layer 1</title>
<path fill-opacity="0" id="svg_1" d="m23,2-20,9.5l22,9" stroke-width="4" stroke="#000000" fill="#ffffff" />
</g>
</svg>

我想提取SVG文件的宽度和高度,这样我可以做一些定位与canvg。

我知道这是XML,但我无法弄清楚。 这可能是一些很容易的,但它是一年的最后一天,我无法弄清楚。

一直在努力:

PHP的SimpleXML

$xml = simplexml_load_file($imageright) or die("Error: Cannot create object");
print_r($xml->getDocNamespaces());echo '</br>';

给我阵列([] => http://www.w3.org/2000/svg )

这也不起作用:

foreach($xml->svg[0]->attributes() as $a => $b)
  {
  echo $a,'="',$b,"\"</br>";
  }

有任何想法吗?

Answer 1:

所有你需要的是

$xml = simplexml_load_file($imageright);
$attr = $xml->attributes();
printf("%s x %s", $attr->width, $attr->height);

产量

23 x 22

简单的在线演示



Answer 2:

这里是awk脚本一个简单的解决方案。

假设宽度高度总是在第一行。

通过解剖行"作为字段分隔符,然后得到2和第4场。

awk -F '\"' 'NR==1{print $2,$4}' input.svg

产量

23 22


文章来源: how to extract height and width from a svg file