2017-08-13 11 views
0

にRGBピクセルバッファを変換するには? (バッファが指しているバイト)どのように私はこのような構造を持っているIRandomAccessStream^

PixelFormatが違いを生み出しているかどうかわかりませんが、好きなものがあればRGBという形式です。

ありがとうございます!

私は^SoftwareBitmapが必要注

は、だから私のアイデアは^ IRandomAccessStreamを取得し、私はそれに気づいていないです、いくつかのショートカットがある場合BitmapDecoderは^私は^ SoftwareBitmapになるだろう、そこから取得することであるだろう素晴らしいよ!

+0

'IRandomAccessStream'から派生したクラスを作成し、必要なすべてのメソッドを実装する必要があります。 – VTT

+0

これが唯一の方法ですか? IRandomAccessStreamと同じように動作しますか?そして、このPixelBufferで動作するように実装するにはどうすればいいですか?コンストラクタを使って送信しますか?私はこれらの質問が愚かであれば申し訳ありません。カスタムIRandomAccessStreamを実装したことは一度もありません。どれくらい難しいのですか。 –

+0

この記事が見つかりました。https://canbilgin.wordpress.com/2012/06/06/how-to- convert-byte-array-to-irandomaccessstream /はC++に似ていますか? –

答えて

-1

ストリームを通過する必要がSoftwareBitmap ^は何が必要であるならば、あなたはこの

vector<unsigned char> bufferBGRA; // Convert your bytes to BGRA 
DataWriter ^writer = ref new DataWriter(); 
writer->WriteBytes(Platform::ArrayReference<BYTE>(
      bufferBGRA.data(), 
      width * height * 4)); // 4 channels (BGRA) 
IBuffer ^buff= writer->DetachBuffer(); 

// Create SoftwareBitmap from buff 
SoftwareBitmap^ softwareBitmap = ref new SoftwareBitmap(BitmapPixelFormat::Bgra8, width, height); 
softwareBitmap->CopyFromBuffer(buff); 

のように、バッファから直接それを得ることができ、ええ、この場合にBGRAがあるため、有利な形式ではありませんバッファをフォーマットに変換する必要がありますBitmapPixelFormatはBGRAのようにサポートします

関連する問題