-1

我有使用 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 的内容转换为位图?

问候,

4

1 回答 1

1

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

于 2015-06-23T12:06:36.840 回答