0

MSライブラリをチェックしていました。

PixelBuffer.AsStream()ユニバーサルアプリの開発には時代遅れのようです。

VS2015 Community バージョンで Win10 (ビルド 10240) を使用しています。

私は何かが恋しいですか?

さらに、バイト配列または整数配列から WriteableBitmap にストリームをエンコードまたは書き込む最良の方法は何ですか?

BitmapEncoder のメソッドを試していましたが、次の方法でしか作成できませんでした。

BitmapEncoder enc = await BitmapEncoder.CreateForTranscodingAsync(fileStream, decoder);
enc.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, W, H, 200, 200, sourcePixels);

その後、WriteableBitmap に表示される変更はありませんでした。それ以外の場合、フレームワークは例外をスローしていました(私のコードの外側)

デコーダーは正常に動作し、すべてのピクセルが適切にデコードされ、byte[] sourcePixels 配列にストリーミングされました。

4

2 に答える 2

3

AsStream は時代遅れではありません。リンクされた MSDN サンプル コードに示されているように有効です。IBuffer を直接マザーにするのではなく、IBuffer の管理を容易にするための拡張メソッドです。https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.windowsruntime.windowsruntimebufferextensions.asstream(v=vs.110).aspxを参照してください。

これを使用するには、ソース ファイルの先頭に次の using を追加します。

using System.Runtime.InteropServices.WindowsRuntime

次に、ドキュメントのサンプルに示されているように、 PixelBuffer.AsStream を呼び出すことができます。

// Open a stream to copy the image contents to the WriteableBitmap's pixel buffer 
using (Stream stream = Scenario4WriteableBitmap.PixelBuffer.AsStream()) 
{ 
    await stream.WriteAsync(sourcePixels, 0, sourcePixels.Length); 
}     
于 2015-10-14T14:53:04.533 に答える