-1

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: 同様の問題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 に答える