用Java读取svg路径数据的最简单方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用Java读取svg路径数据的最简单方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1695字,纯文字阅读大概需要3分钟。
内容图文
这个问题已经在这里有了答案: > How to load and parse SVG documents 1个
我正在寻找使用svg图像并解析/处理不同的路径以进行自定义转换.在Java中,最简单的方法是简单地提取路径数据?我正在查看apache xmlgraphics / batik包,但是如何返回路径类型和参数并不是很明显.有什么建议么?
解决方法:
要简单地提取路径数据,可以使用XPath.
假设您有此SVG,并且要提取所有路径数据(从两个路径元素中提取):
<svg>
<rect x="1" y="1" width="1198" height="598"
fill="none" stroke="blue" stroke-width="1" />
<path d="M200,300 Q400,50 600,300 T1000,300"
fill="none" stroke="red" stroke-width="5" />
<g fill="black" >
<circle cx="200" cy="300" r="10"/>
<circle cx="600" cy="300" r="10"/>
<circle cx="1000" cy="300" r="10"/>
</g>
<g fill="#888888" >
<circle cx="400" cy="50" r="10"/>
<circle cx="800" cy="550" r="10"/>
</g>
<path d="M200,300 L400,50 L600,300 L800,550 L1000,300"
fill="none" stroke="#888888" stroke-width="2" />
</svg>
您首先将XML加载为文档:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse("image.svg");
然后,使用XPath选择所需的节点.下面的表达式选择文件内所有路径元素的d属性的内容:
String xpathExpression = "//path/@d";
现在我们可以实例化XPath处理器并编译表达式:
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
XPathExpression expression = xpath.compile(xpathExpression);
由于预期结果是一个节点集(两个字符串),因此我们使用XPathConstants.NODESET作为第二个参数来评估SVG文档上的表达式:
NodeList svgPaths = (NodeList)expression.evaluate(document, XPathConstants.NODESET);
从那里,您可以使用以下命令提取第一组路径数据:
svgPaths.item(0).getNodeValue();
内容总结
以上是互联网集市为您收集整理的用Java读取svg路径数据的最简单方法?全部内容,希望文章能够帮你解决用Java读取svg路径数据的最简单方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。