从一个元文件写入和读取多个图像?

简洁版本:

我需要一种方法来将多个图像文件存储在一个更大的文件中,用于使用C#,最好能够轻松地与XNA兼容。 这些文件将被读取,写入,但在运行时会添加adaitional文件。是否有一个简单的方法来做到这一点?

长版本:

我目前正在做一个小型的学生项目。 这是一个自上而下的RPG战略,我们决定让地图变成dynamic的,这意味着它的一部分会在玩家角色四处移动时在后台加载/卸载。

我认为最好的办法是在玩家靠近玩家时加载/生成大块,并在玩家走得更远的时候卸载它们。 我认为最好的办法是将块保存为光栅graphics,然后使用颜色信息(RGBA)来存储信息。

问题是,我想要保存一定的块,一旦生成,所以我需要一种方式来保存图像,以同样的方式,我读它们,但最好全部在一个单一的文件,以免有一个文件夹膨胀与大小很多文件。

您可以使用容器而不是目录,在其中存储多个文件。 System.IO.Packaging.ZipPackage提供了一个这样的容器,从.NET Framework 3.0开始,这意味着如果要在XBox(仅支持.NET 2.0)上使用XNA,就必须search其他实现。 DotNetZip或SharpZipLib可能工作,但我还没有尝试。

另一种解决scheme是使用默认支持多个图像的图像格式,如TIFF。 有一个LibTiff.Net可用,也适用于.NET 2.0。