RBa*_*rda 6 java image-processing java-2d
我正在开发一个应用程序,它使用Java 2D绘制矩阵 - 它可以变得非常大,例如30000 x 30000像素.此时我用BufferedImage进行了一些实验,但是创建如此庞大的BufferedImage会导致内存不足异常,即使在扩大堆时也是如此.现在我正在考虑将图像分成几个图像/区域,当我在某个区域完成时,将其写入磁盘并创建一个新区域/ BufferedImage并继续绘制.我对其他人如何处理这个问题感兴趣.我已经离开Java一段时间了,所以欢迎任何具体的例子.
我为一个新的/小型开源项目做出了贡献,该项目可能非常适合您的需求。
该项目是Glimpse。其目的是帮助用 Java 构建 2D 数据可视化,重点是很好地处理大型数据集,并轻松提供实时交互性,以便轻松探索数据。

它利用OpenGL来利用现代 GPU 上的硬件功能(例如纹理内存和着色器)来实现上述目标。因此,如果您决定使用 Java2D,那么这对您不起作用。不过,Glimpse 面板可以与其他 Swing 组件并排放置,因此可以轻松放入现有的 Swing GUI 中。唯一需要注意的是,您需要一块像样的显卡。
该图像是一个大型数据矩阵的示例,其颜色通过右侧的色阶动态调整(矩阵数据存储在 GPU 纹理中,动态重新着色是通过自定义着色器完成的)。此示例的源代码是HeatMapExample.java。还有很多类似的其他示例,它们为使用 Glimpse 的其他功能提供了起点。
您可以访问glimpse.metsci.com了解更多信息。首页上有一个介绍视频以及Java WebStart 示例。源代码托管在GitHub上。