Windows ストア アプリのセキュリティ制限により、ファイル名を渡すとクラッシュする可能性があります。ファイル ピッカーを使用するか、明示的なアクセス許可が付与されている場合にのみ、ファイルを開くことができます。
したがって、ファイルをロードするときは、その内容を保存する必要があります。たとえば、バイト配列に。からバイト配列を生成する方法は次のStorageFile
とおりです。
//file is the input StorageFile
var sourceStream = await file.OpenReadAsync();
//do anything else with the file, e.g. creating a BitmapImage
using(MemoryStream mem = new MemoryStream())
{
//Reset the file stream
sourceStream.Seek(0);
sourceStream.AsStreamForRead().CopyTo(mem);
var bytes = mem.ToArray();
}
次に、バイト データを DirectX ライブラリに渡し、テクスチャにロードする必要があります。または、BitmapDecoder
クラスを使用してファイルを生の画像データに変換することもできます。メソッドCreateAsync
、GetPixelDataAsync
およびDetachPixelData
が役立つ場合があります。