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

C#-XFL内容:将.dat文件转换为位图,c#,flash,fla,xfl,C#,Flash,Fla,Xfl,我有使用XFL格式的.fla文件。 里面有一个包含一些.dat文件的/bin文件夹,这些文件是图像 是否有办法将这些.dat文件转换为位图并在PictureBox控件中显示 下面是dat文件的一个示例: 以及相应的图像(从Flash导出) 更新: 下面是我的代码: string scenePath = "Path to .fla file"; ZipFile zip = new ZipFile(scenePath); MemoryStream ms = new MemoryStream();

我有使用XFL格式的.fla文件。 里面有一个包含一些.dat文件的/bin文件夹,这些文件是图像

是否有办法将这些.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: 我发现了一篇描述类似问题的帖子。 在回答中,我发现:

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

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

我尝试手动解压.fla并将.dat文件重命名为image ext(.jpg、.png、.bmp)以检查它是否为普通图像文件,但在尝试打开它时遇到错误“格式不正确”

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


关于,

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

您尝试过什么,搜索过方法吗?谢谢您的快速回答:)我已经尝试过此解决方案,但不起作用:(显然,adobe改变了dat文件中的图像格式,我找到了这篇文章,描述了fla中的/bin文件夹。但是我不知道如何将dat文件转换为位图对象。所以你的问题是如何将.dat文件转换为位图。也许你应该改进你的问题,并在其中添加一个示例.dat文件。此外,可能还需要添加结果。)我更新了我的帖子,并添加了dat文件的链接