当前位置: 首页 > 知识库问答 >
问题:

如何从svg文件中提取高度和宽度

归俊杰
2023-03-14

示例

<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>";
  }

有什么想法吗?

共有1个答案

程俊力
2023-03-14

你所需要的就是

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

输出

23 x 22

简单的在线演示

 类似资料:
  • 编辑:codesandbox:https://codesandbox.io/s/40xj3zv5w7上的示例,图像变得非常小,而不是400px宽和10px高。

  • 我正在尝试阅读nexus 7 2013设备的宽度和高度,使用fallowing js代码: 它在所有设备上都能正常工作,但nexus 7 2013除外。只有在这个设备上,它有时读取1920的宽度,有时读取960的宽度。 有人能帮我理解为什么会发生这种情况以及如何克服这个问题吗?谢谢!

  • 与malloc'相同大小的内存和手动读取整个文件到malloc'区域相比,这有什么不同?

  • 我用角2,我创建一个甜甜圈图 组件的html 我想要的是将这些值作为主组件的输入进行传递。因此,假设在html上,我将该组件称为: 主HTML 组成部分js代码 因此,我的问题是如何将这些输入传递到组件的html中。

  • 我有一个使用Imagick PHP的PDF文件的缩略图创建脚本。 它将创建PDF文件第一页的缩略图。 我能够生产的缩略图没有任何问题与固定的高度和宽度 我必须得到PDF文件第一页的高度和宽度,并相应地计算缩略图的高度和宽度。 如果我必须从一个图像创建缩略图,我可以使用PHP中的getimagesize函数,但是有没有像那样的函数来获取PDF文件第一页的高度和宽度呢?

  • 问题内容: 我一直在研究mplayer / mencoder和ffmpeg文档,但似乎 什么 都没想。我对输出格式不是特别挑剔,因为我可以使用正则表达式将其提取出来,但我似乎根本无法获得数据。 问题答案: MediaInfo具有命令行版本,并提供尺寸以及 大量 其他信息。