java - BufferedImage 的 getSubimage 性能

标签 java swing 2d

我正在开发 Java 2D 渲染程序(在 1.6.0_11 上运行),它使用外部图像进行 UI 渲染。这些大图像同时包含多个 UI 图形部分,我现在使用 BufferedImage.getSubimage() 提取它们。假设一个普通的桌面系统(我们没有启用 DirectX/OpenGL 加速),我的问题是:

  • getSubimage() 是一种内存高效调用,因为它共享底层图像数据,但这是否会影响使用 Graphics2D.drawImage() 渲染这些子图像的速度?
  • 如果图像使用每像素 8 位调色板模式,使用 RGBA 模式(例如 4 倍内存)或依赖调色板颜色模型(例如转换时间)的 yield /损失是多少?

最佳答案

据我所知,getSubimage(...) 应该不会对渲染产生任何重大影响。

转换图像数据很慢,通常最好避免即时进行。


图像缓慢可以分为两类:

  • 磁盘输入/输出
  • 数据处理

磁盘 I/O 很容易成为最慢的部分。

如果您打算只使用图像的一部分,最好只能从磁盘加载图像的一部分。

我的经验是JAI比标准库的东西更擅长只做真正需要的事情。

关于java - BufferedImage 的 getSubimage 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/500484/

相关文章:

java - A* 寻路算法运行速度极慢

java - JDBC MySql连接池实践避免连接池耗尽

java - 防止Spring的RestTemplate为multipart/form-data中的每个参数添加 header

Java Swing 使用文本文件中的数据填充多个 JTextField

java - SwingUtilities.invokeLater()

java - 将其他类的图像添加到 JFrame

jquery - 使用 jQuery 分层交叉元素

python - 在二维网格 python 上插值

java - 循环外数组更改(JAVA)

Java 服务 - 网络方法