我有使用 XFL 格式的 .fla 文件。里面有一个 /bin 文件夹,里面有一些 .dat 文件,这些文件是图像。
有没有办法将这些 .dat 文件转换为位图并在 PictureBox 控件中显示它们?
这是一个 dat 文件的示例:链接
以及对应的图片(从Flash中导出)链接
更新:在我的代码下面:
string scenePath = "Path to .fla file";
ZipFile zip = new ZipFile(scenePath);
MemoryStream ms = new MemoryStream();
foreach (ZipEntry entry in zip)
{
if (entry.FileName.Contains(objName))
{
entry.Extract(ms);
//TODO: Need to convert the content of MemoryStream to image type!
Bitmap bmp = new Bitmap(ms);
pictureBoxObjView.Image = bmp;
}
}
UPDATE2:我发现一篇描述类似问题的帖子XFL - What are the ./bin/*.dat files?. 在答案中我发现了这个:
其中解压缩的数据是具有存储类型的像素:ARGB,因此使用大小信息应该足以从中获取图像。它使用 ZLIB 压缩 (www.zlib.net) Flash 使用压缩级别 1,但可以使用任何级别(但这不是必需的,因为源通常完全压缩。
但我仍然不明白如何将 .dat 文件转换为位图!
我尝试手动解压缩 .fla 并将 .dat 文件重命名为 image ext (.jpg, .png, .bmp) 以检查它是否是正常的图像文件,但是当我尝试打开时出现错误“格式不正确”它。
我的问题是如何将 MemoryStream 的内容转换为位图?
问候,