【发布时间】:2013-05-31 04:42:26
【问题描述】:
我正在编写一些资源管理代码,其中我获取了一堆不同的资源(图像位置等)以及实际图像,并从中制作了一个二进制文件。现在,我如何实际将 .PNG 文件包含在二进制文件中,以及如何再次读回它?我想保留 .PNG 压缩。
我使用 BinaryWriter 将数据写入文件,并使用 BinaryReader 将其读回。这是我使用的格式示例:
BinaryWriter writer = new BinaryWriter(new FileStream("file.tmp"));
writer.Write(name);
writer.Write(positionX);
writer.Write(positionY);
// Here should be the binary data of the PNG image
writer.Close();
BinaryReader reader = new BinaryReader(new FileStream("file.tmp"));
string name = reader.ReadString();
float posX = reader.ReadSingle();
float posY = reader.ReadSingle();
Bitmap bitmap = ... // Here I'd like to get the PNG data
reader.Close();
还有一些其他数据,在 PNG 数据之前和之后。基本上我会将多个 PNG 文件合并到这个二进制文件中。
【问题讨论】:
-
我不确定我是否理解这个问题 - 您是在询问将文件添加到存档(类似于 zip、7z、rar、tar 等)还是询问如何创建图像其中部分来自不同的输入源(例如,使用 Graphics.DrawImage)。如果是后者,您使用的是哪个 UI 框架(如果有)?
-
更像前者。我有自己的二进制文件格式,我在其中转储图像和有关其使用情况的信息。我将用一个例子更新原始问题。 :)