我需要在磁盘上保存一个大的映像--太大了,以至于会产生外部内存错误(比如10000x10000 px)。它应该是一个瓷砖,我将瓷砖作为一个BufferedImage存储在内存中。我读过一些关于TiledImage类只能处理部分映像的内容,其余的只能存储在磁盘上,但我还没有找到一个简单的示例来说明如何做到这一点吗?,请您向我介绍或为虚拟人创建一个教程,说明如何在磁盘上存储一个大映像,而不需要将其全部存储在内存中?类似于“像这样在磁盘上直接创建大映像:”,“像这样访问它的部分并在其中存储数据:”或者不管它如何工作。
我知道这里已经问过几次了,但我阅读了所有这些,并搜索了很多,但仍然没有找到一个完整的工作(或可理解)的例子。也许这是语言障碍,或者我只是在这类事情上很笨,总之,帮帮忙,拜托:)
发布于 2012-12-28 12:25:48
您从他们的文档中签出DiskMemImage了吗:
该类与JAI的标准TiledImage类具有相同的用途:即可以容纳各种数据类型的可写映像、可选的ColorModel和以tiles形式排列的数据。但是,与TiledImage不同,DiskMemImage使用磁盘和内存存储来允许在有限内存中处理非常大的图像。
发布于 2012-12-28 12:43:00
您可以看看PNGJ,我为类似的场景创建了这个库。
发布于 2012-12-28 12:26:57
我只会增加你最大的记忆,这就简单多了。在命令行上使用-Xmx1g进行尝试。
使用瓷砖是没有魔力的。当你在屏幕上缝合时,你只需将你的图像分割成更小的图像,这样它看起来就像一个大的图像。谷歌地图就是这样做的。
https://stackoverflow.com/questions/14069418
复制相似问题