1

DirectDraw Surface (DDS) ファイルを読み込んで WPF アプリケーションで表示しようとしています。これは、zip アーカイブからストリームを取得する方法です。

using (ZipArchive clientArchive = ZipFile.OpenRead(levelsPath + mapName + @"\client.zip"))
{
    var entry = clientArchive.GetEntry("hud/minimap/ingamemap.dds");
    var stream = entry.Open();
}

では、WPF アプリケーションで DDS 画像 (最初の最高品質のミップマップ) を表示するにはどうすればよいですか?

4

2 に答える 2

2

最近、 kprojectsの DDSImage クラスを使用しました。DXT1 および DXT5 の圧縮された DDS ファイルを読み込むことができます。

バイト配列で新しいインスタンスを作成し、imagestype のプロパティを介してすべてのミップマップにアクセスするだけBitmap[]です:

DDSImage img = new DDSImage(File.ReadAllBytes(@"e:\myfile.dds"));

for (int i = 0; i < img.images.Length; i++)
{
    img.images[i].Save(@"e:\mipmap-" + i + ".png", ImageFormat.Png);
} 

Image -Controlで表示できるビットマップとしてミップマップを取得しました。メモリ内のビットマップに基づいて BitmapSource を作成するには、この回答が正しい方法を示してくれました。

于 2014-09-27T17:38:06.870 に答える