我正在处理地图保存文件。本质上,此地图保存将包含诸如实体位置之类的信息,以及该世界中每个区块的图像(在游戏过程中会发生变化)。我可以将这一切保存在多个文件中,但是为了简单起见,我宁愿将其保留为一个文件(对于用户来说很简单......),而且,因为我不希望地图是可编辑的(不仅仅是双至少单击图像文件)。
所以本质上,它归结为写入一个文件,目前我已经全部工作了,我正在写入 2 个字节来指示沿世界的 x 和 y 轴的块数,然后通过并存储一个字节用于 alpha,每个块的每个像素的红色、绿色和蓝色。
每个块都是 512 x 512 图像。当我保存一个世界时(仅包含块和世界大小(2 个字节)。文件大小符合预期。块数 * 512 * 512 * 4 (ARGB) + 2 (世界大小) 字节。
但是,查看我刚刚使用 Bitmap.Save() 测试导出的每个块的图像的文件大小,每个图像文件的大小为 10 - 20 KB。基本上,少了很多。
所以我需要以某种方式将多个图像存储在一个文件中,占用更实际的空间。
要么以某种方式获取 Bitmap.Save() 通常会导出的内容,然后将其添加到文件中,要么以更节省空间的方式手动存储图像,而不是每个像素 4 个字节。
有谁知道其中任何一个的方法?或者有效存储多个图像的另一个想法?