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

如何使用SVG图像作为JavaFX的yFiles的节点样式?

孟胤
2023-03-14

我需要用SVG图像来设计节点的样式,但是无法正常工作。我正在使用< code>ImageNodeStyle并将一个SVG图像传递给构造函数。但是,对节点应用这种样式没有任何效果。我试着用位图图像,效果很好。

如何为节点样式启用SVG图像支持?

共有1个答案

鲁俊友
2023-03-14

yFilesforJavaFX使用JavaFX作为渲染引擎,不幸的是JavaFX不直接支持SVG图像。您需要将SVG图像转换为JavaFX能够理解的图像,然后才能将其与ImageNodeStyle一起使用。

使用WebViews将是另一种选择,但是这是一个非常重量级的解决方案,对于许多SVG来说不能很好地扩展。您当然可以用于渲染背景SVG,但我不会使用数百个实例来显示简单的SVG图形以可视化节点。

看看这个对相关SVG/JavaFX问题的回答:它提出了一个通用问题的解决方案,它也应该适用于这个特定问题。

 类似资料:
  • 换句话说,我正在尝试用JavaFX做一些事情,就像蜡染允许你用Swing做的事情一样。 我希望能够在我的 JavaFX UI 中捕获任意节点的外观,就像 Node.snapshot() 一样,除了我需要像 SVG 这样的矢量格式的图像,而不是光栅图像。(将节点的光栅快照插入到SVG图像中是不够的,它需要是一个适当的,可缩放的矢量图像。 这是一个长期项目,所以我甚至愿意在JavaFX的保留模式API

  • 我是JavaFX 2.2的新手,到目前为止,我无法找到在我的JavaFX 2.2应用程序中显示SVG图像的方法。我看了一下Batik,但它没有为我做这个把戏,因为它可以转换为而不是。 有什么方法可以在JavaFX应用程序中显示SVG图像?或者至少可以从JavaFX导出一个SVG图像?函数< code>Node.snapshot()有什么帮助吗?

  • 我将添加滚动功能,缩放,选择节点和拖动节点。 谢谢你的帮助。

  • 问题内容: 这是我想出的一小段代码的自我问答。 当前,没有一种简单的方法可以嵌入SVG图像,然后可以通过CSS访问SVG元素。有多种使用JS SVG框架的方法,但是如果您要做的只是制作带有过渡状态的简单图标,它们将过于复杂。 所以这就是我想出的,我认为这是迄今为止在网站上使用SVG文件的最简单方法。它的概念来自早期的文本到图像替换方法,但据我所知,从未对SVG进行过处理。 这是问题: 如何在不使用

  • 这是我想出的一段方便的代码的自我问答。 目前,还没有一种简单的方法来嵌入SVG图像,然后通过CSS访问SVG元素。使用JS SVG框架的方法多种多样,但如果您所做的只是制作一个带有滚动状态的简单图标,那么这些方法就过于复杂了。 所以这里是我想出的,我认为这是迄今为止在一个网站上使用SVG文件的最简单的方法。它的概念来自早期的文本到图像的替换方法,但据我所知,SVG从来没有这样做过。 这就是问题所在

  • 问题内容: 我有一个外部SVG文件,其中包含一些嵌入的图案图像标签。每当我使用将该SVG转换为PNG时,生成的PNG图像都不包含我已作为图案应用到某些SVG路径的图像。有什么办法解决这个问题? 问题答案: 是的,有:将svg附加到文档中,并将所有包含的图像编码为dataURIs。 我正在编写一个脚本来执行此操作,还编写了一些其他内容,例如包括外部样式表以及toDataURL失败的其他修复方法(例如