如何用Java中的许多图块创建大图像文件?

洛朗K:

我的程序可以一张一张地生成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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章