C#-XFL内容:将.dat文件转换为位图

本文关键字:转换 位图 文件 dat 内容 C#-XFL | 更新日期: 2023-09-27 17:59:04

我有使用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;
    }
}

更新2:我发现一篇文章描述了一个类似的问题XFL-What are/bin/*.dat文件?。在答案中,我发现:

其中解压缩的数据是存储类型为ARGB的像素,因此根据大小信息,应该足以从中获取图像。它使用ZLIB压缩(www.ZLIB.net)Flash使用压缩级别1,但可以使用任何级别(但没有必要,因为源通常都是完全压缩的。

但我仍然不知道如何将.dat文件转换为位图!!

我试着手动解压缩.fla,并将.dat文件重命名为image-ext(.jpg、.png、.bmp),以检查它是否是正常的图像文件,但当我试图打开它时,我收到了错误"格式不正确"。

我的问题是如何将MemoryStream的内容转换为位图?

问候,

C#-XFL内容:将.dat文件转换为位图

如果可以将/bin文件夹中的文件提取到流或字节数组中(然后将其封装在流中),则可以调用相应的位图构造函数,并将此位图分配给PictureBox的image属性。