我的程序可以一张一张地生成3000 x 3000像素的10 x 10瓦片图像(当前保存到名为的100个文件中image_x_y.jpg
)
我想将这100张图像组装成一个大图像,而不将所有内容都加载到内存中。我的目标是创建一个30,000 * 30,000像素的大图像文件。
我正在寻找一种不使用JAI的方法(无法从公共Maven存储库安装,我不明白为什么)
有没有办法用纯java2D做到这一点?还是存在另一个能够处理此问题的库?
我最初的想法是创建一个非常大的缓冲映像,从DataBuffer备份到磁盘上的文件。但是我不确定这是否可能。有人做过吗?
我想将这100张图像组装成一个大图像,而不将所有内容都加载到内存中。我的目标是创建一个30,000 * 30,000像素的大图像文件。
我相信JAI中有一个课程可以做到这一点。无论您将JAI集成到项目中遇到什么问题,我都会坚持不懈,而不是发布自己的版本。Java2D中没有类似的东西。
我最初的想法是创建一个非常大的缓冲映像,从DataBuffer备份到磁盘上的文件。但是我不确定这是否可能。有人做过吗?
是的,我对此未完成编写。它包括
DataBuffer
由a ByteBuffer
而不是数组支持的A (如果缓冲区是直接缓冲区,则可以将其映射到文件。)WritableRaster
类似于标准的栅格,但使用我的实施DataBuffer
(在JDK中的标准光栅骗通过举办以支持数组的引用。有一个直接的情况下,没有数组ByteBuffer
所以很遗憾,你必须重新实现大部分Raster
的方法。)我不建议您扩展SampleModel
类,因为您的类将无法与JDK栅格一起使用(Java2D中的各种方法(包括Raster
工厂方法)会在SampleModel
假设其类型为标准方法之一的情况下启用该类型。糟糕的恕我直言,但您对此无能为力除了遵循相同的模式。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句