web-dev-qa-db-ja.com

Windows Phone 8.1でIBufferをバイト配列に変換するにはどうすればよいですか?

私はWindowsPhone8.1用のアプリケーションを書いています。

UIElementを画像ファイルとして保存する必要があります(JPGまたはPNGが望ましいです)。これを行うためにRenderTargetBitmapクラスを使用しています。 UIElementでメソッドRenderAsyncを呼び出した後、RenderTargetBitmapのメソッドGetPixelsAsync()の結果を含むIBufferを作成します。

次に、メソッドToArray()を呼び出してIBufferをバイト配列に変換し、BitmapEncoderなどを使用して画像を保存する必要がありますが、Windows Phone 8.1ではIBufferのToArray()メソッドがないようですが、Windowsでは8.1が存在します。

この問題を解決するにはどうすればよいですか?

17
AshleyT

これはWindowsPhone 8.1で利用できますが、notWP 8.0で利用できます。( MSDNを参照)リンク

ただし、コンパイラによって検出されるように、適切な名前空間が含まれていることを確認する必要があります。

using System.Runtime.InteropServices.WindowsRuntime

23
Paul Annetts

新しい質問を作成したくないので、これを拡張することにします。 WP8とWindowsストアアプリの両方のプラットフォームで完全な答えになります

この名前空間を使用できないWindowsストアアプリでIBufferをbyte []に​​変換する方法を知っているかもしれません:System.Runtime.InteropServices.WindowsRuntime

よろしく、Marcin

提案の解決策:私はこの投稿のコードを使用します: https://stackoverflow.com/a/21490534/313908

ありがとう

3
Marcin