如何在Java中高性能地显示多个SVG

2023-12-28

我想要的是

我的目标是能够在 Java 的单个绘图区域上显示大量 SVG 图像,每个图像都有自己的平移/旋转/缩放值。我正在寻找允许此操作的最简单的解决方案,甚至可以选择使用 OpenGL 来加快速度。

我尝试过的

我最初的幼稚方法是使用 SVGSalamander 直接在 JPanel 上绘图,但性能很差。

我四处寻找,了解到我应该做一些事情,比如手动将每个 SVG 转换为使用 createCompatibleImage 创建的 BufferedImage,然后进行我想要的转换,然后使用双缓冲绘制它。我在这里遇到了一些麻烦,在继续之前我尝试寻找框架来简化事情。

我看过什么

我对可用的选项有点不知所措,这就是为什么我向 SO 寻求帮助。我看过:

  • Cairo http://cairographics.org/ (with Glitz http://www.freedesktop.org/wiki/Software/glitz maybe?)
  • Libart http://www.freedesktop.org/wiki/Software/glitz- 不确定这是否真的支持 SVG
  • FengGUI http://www.fenggui.org/doku.php
  • Slick http://slick.cokeandcode.com/static.php?page=about- 看起来很有希望,但有点矫枉过正

但无法决定什么最适合我开始工作,我希望这里有人有做类似事情的经验。


将 SVG 渲染为纹理,然后使用所需的变换渲染纹理四边形。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Java中高性能地显示多个SVG 的相关文章

  • 如何使用 Java 创建多个模式连接?

    我必须使用两个数据库 DB2 Oracle 我在 DB2 数据库中有一个名为NAVID 我想使用 Java 为 Oracle 中的所有表创建相同的架构 public class automateExport static String va
  • Java中定义类型后同时初始化多个变量?

    这里需要一些语法方面的帮助 我正在尝试在定义类型后重新初始化多个变量 例如 int bonus sales x y 50 这工作正常 但是我想稍后在程序中将不同的值放入其中一些变量中 但我收到语法错误 bonus 25 x 38 sales
  • 在哈希图中存储字符和二进制数

    我正在尝试存储字母到二进制数的映射 这是我的映射 h 001 i 010 k 011 l 100 r 101 s 110 t 111 为此 我创建了一个哈希映射并存储了键值对 我现在想显示给定句子的相应二进制值 这是我的代码 package
  • Maven 目标的默认阶段?

    据我了解 在 Maven 中 插件目标可以附加到生命周期阶段 如果没有定义 默认阶段是什么 根据我的经验 这取决于插件的目标 例如 组装 单个 http maven apache org plugins maven assembly plu
  • JAX-WS:有状态 WS 在独立进程中失败

    我在 Tomcat 上部署了一个有状态的 Web 服务 它由工厂服务和主要 API 服务组成 并且工作得很好 工厂服务将 W3CEndpointReference 返回到主 API 实例 客户端使用会话 现在 我尝试将相同的服务作为独立应用
  • 为什么一个线程会中断另一个线程[重复]

    这个问题在这里已经有答案了 在Java多线程应用程序中 我们处理InterruptedThreadException 如果另一个线程中断当前线程 则会抛出此异常 现在 当另一个线程知道它将导致异常时 它可能想要中断当前线程的原因是什么 很多
  • c++11 正则表达式比 python 慢

    嗨我想了解为什么以下代码使用正则表达式进行分割字符串分割 include
  • Java 中 static 关键字如何工作?

    我正在阅读Java教程 http docs oracle com javase tutorial index html从一开始我就有一个问题static字段或变量上的关键字 作为Java said here http docs oracle
  • XSLT:我们可以使用abs值吗?

    我想知道在 XSLT 中我们是否可以使用 math abs 我在某处看到过这个 但它不起作用 我有类似的东西
  • PyQt5 的 OpenGL 模块和版本控制问题(调用不正确的 _QOpenGLFunctions_(ver))

    我一直在努力得到PyQt5 helloGL 示例代码 https github com baoboa pyqt5 blob master examples opengl hellogl py编译 当我尝试构建解决方案时 我得到 Traceb
  • 2 个 SVG 路径的交集

    我需要检查两个 SVG Path 元素是否相交 检查边界框与 getBBox 太不准确了 我目前正在做的是迭代两条路径 getTotalLength 然后检查是否有两个点 getPointAtLength 是平等的 下面是一个片段 但正如您
  • Netty中连接关闭后重新连接的最佳方法是什么

    简单场景 扩展 SimpleChannelUpstreamHandler 的较低级别的类 A 此类是发送消息和接收响应的主力 系统其他部分可以使用顶级类 B 来发送和接收消息 可以模拟同步和异步 此类创建 ClientBootstrap 设
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 在 netBeans 中运行程序时,字体看起来非常奇怪

    我在我的新 MacBook M1 上设置了 netBeans 和 SceneBuilder 除了运行程序时的字体外 一切正常 它看起来像这样 我不知道为什么 按钮应显示 Click me 标签应显示 Hello 我收到的错误消息是 M rz
  • 如何将任务添加到 gradle 中的主要“构建”任务

    当我尝试使用以下代码将任务添加到主构建任务时 rootProject tasks getByName build dependsOn mytask 当我跑步时它抱怨gradle w build输出 Where Build file line
  • JPA - 非主键字段上的 @OneToOne 关系不起作用

    我有一个 Spring Data JPA 后端 使用 Hibernate 作为 ORM 实现 这是模型 Person MailConfig id PK uid PK FK Person uid uid Entity
  • Java中的媒体播放器库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在评估用于在 Java 中播放音频 视频的库 它不需要 100 Java Java 与本机库的绑定
  • Java:基于 Web 的应用程序中的单例类实例

    我在 Web Application 中有这个 Singleton 类 public class MyDAO private static MyDAO instance private MyDAO public static MyDAO g
  • 编译时在代码中替换Java静态最终值?

    在java中 假设我有以下内容 fileA java class A public static final int SIZE 100 然后在另一个文件中我使用这个值 fileB java import A class b Object t
  • RecyclerView 不调用 onCreateViewHolder 或 onBindView

    没有收到任何错误 所有数据似乎都有效 由于某种原因 没有调用与视图相关的方法 我已确定以下事项 getItemCount 是唯一被调用的适配器方法 并且返回一个正整数值 我知道这将是你们将要查看的区域 构造函数正在被调用 成员变量有效 Pa

随机推荐

  • 循环遍历所有 MDI 子窗体并关闭除当前窗体之外的所有其他窗体

    我正在使用 C 开发 winforms 应用程序 我有一个 MDI 容器 左侧有一个菜单 按下按钮即可看到相应的表单 如果我单击打开 Form1 的按钮 3 次 则会打开该表单的 6 个实例 因此我认为我必须编写一个方法来处理任何其他 Fo
  • 在字符串中查找字母,后面不跟数字...可能使用 RE?

    我试图从字符串中提取字母 这些字母后面不跟着数字 或者后面不直接跟数字 这是一个示例字符串 string ts0060 LOD 70234 lr2 billboards rgba over s3d lf v5 2Kdciufa lnh 这是
  • Angular2 防护在页面刷新时不起作用

    在每次请求之前 我想确保有可用的用户配置文件 我使用 canActivateChild 防护来执行此操作 根据 angular2 的文档 可以返回一个可观察的 https angular io api router CanActivateC
  • 使用 Windows 7 从 IPython 复制到剪贴板

    我在 Windows 7 上运行 IPython 并且可以使用 paste从剪贴板粘贴的魔术命令 但是 我无法从 IPython 复制到剪贴板 我想从 IPython 复制代码片段并将其粘贴回文本编辑器 有人知道解决这个问题吗 Found
  • Android 片段和活动

    参考下图 http developer android com guide components fragments html http developer android com guide components fragments ht
  • 已删除对“{where: '原始查询'}”的支持

    我正在 AWS Lambda 上使用无服务器框架运行 GraphQL 服务器 我正在使用 UI 中获取数据apollo link batch http 如果我使用本地运行它serverless offline 效果很好 但如果我在 AWS
  • 在 C# 中使用动态访问匿名类型的字段 - 可能吗?

    我有一个控制器方法 public JsonResult CalculateStuff int coolArg if calculatePossible return Json CoolMethod coolArg else return J
  • 角度表行包含使用反应形式动态动态列的总和

    我正在 Angular 项目中工作 我想显示一个包含两列和动态行的表格 当用户输入任何数字时 最后一行包含每列的总和 这就是我想要实现的目标 element FR EN elem A elem B elem C Total 这是我的角度代码
  • 使用 QPixmap 的 Qt 内存泄漏

    我在这段代码中的某个地方遇到了奇怪的内存泄漏 该方法是连接到另一个线程中的方法的 SLOT 它做了两件事 1 它用另一个线程所在的迭代更新文本框 2 它将 GUI 上显示的图像更新为与该迭代相对应的图像 它在 10 30 次迭代中效果很好
  • 制作一个遍历 2 个容器的 C++ 迭代器

    我需要一个具有如下功能的 容器 它有 2 个子容器 称为 A 和 B 我需要能够迭代 A B 以及 A 和 B 的组合 我不想为冗余数据使用额外的空间 所以我想到制作自己的迭代器来迭代 A 和 B 的组合 制作自己的迭代器的最简单方法是什么
  • 如何显示最初从plist iphone隐藏的状态栏

    我想在启动应用程序时隐藏状态栏以查看状态栏覆盖的启动图像 所以在 plist 中我添加了 Status bar is initially hidden YES 并且状态栏被覆盖 我的问题是状态栏始终在我的应用程序中被覆盖 我只想隐藏启动图像
  • 如何从一种 Fortran 整数类型转换为更小的整数类型?

    我需要将参数从integer kind 8 to integer kind 4 在 Fortran 中 有什么 简单的 方法可以做到这一点吗 这个参数是一个输入数字 如果这个数字大于2 31 1 4字节整数的限制 程序将总是要求一个更小的数
  • 通过 RedirectAction 传递 Model 为 null

    在我的主控制器中切换视图时 我只是从控制器调用另一个操作 但是我传递的模型在传递后为空 并且事先不为空 public ActionResult Index ViewModelViewImages model return RedirectT
  • 从静态方法调用ES5类方法

    我想从没有实例的静态函数中调用内部函数 如下所示 Foo Bar function options Autodesk Viewing Extension call this options this innerFunc function i
  • 使用 Fabric.js 将背景图像拉伸到画布大小

    我在用Fabric js and Canvas设计一些卡片 我需要将背景图像拉伸到画布大小 但它不起作用 下面是我的代码 SCRIPT
  • 使用 LINQ 生成 XML 时如何从元素中删除 xmlns?

    我正在尝试使用 LINQ 生成我的站点地图 站点地图中的每个 url 都是使用以下 C 代码生成的 XElement locElement new XElement loc location XElement lastmodElement
  • DropdownList 在加载时重置为索引 0

    我该如何重置我的asp DropDownList元素 其中有一个runat server 在 Firefox 中每次 重新加载 页面 按 F5 时索引 0 如果您建议使用 JavaScript 请注意 我没有使用表格 我不知道如何访问具有r
  • R DT 表格顶部的水平滚动条

    我有一个又宽又长的闪亮DT 默认情况下 我想在表格顶部显示水平滚动条 有没有办法做到这一点 我当前的 DT 定义如下所示 DT datatable dt rownames FALSE filter fbox style bootstrap
  • Android自定义对话框高度

    我正在学习 Android 对话框 但我对决定其高度的因素感到困惑 如果我使用此 XML 作为我的对话框布局
  • 如何在Java中高性能地显示多个SVG

    我想要的是 我的目标是能够在 Java 的单个绘图区域上显示大量 SVG 图像 每个图像都有自己的平移 旋转 缩放值 我正在寻找允许此操作的最简单的解决方案 甚至可以选择使用 OpenGL 来加快速度 我尝试过的 我最初的幼稚方法是使用 S