BufferedImage的getSubimage性能

时间:2009-02-01 09:24:12

标签: java swing 2d

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

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

1 个答案:

答案 0 :(得分:1)

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

转换图像数据很慢,通常最好避免在运行中进行。


图像慢度可分为两类:

  • 磁盘I / O
  • 数据处理

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

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

我的经验是,JAI比仅使用标准库的内容更能做到真正需要的东西。