私はKinectからビデオストリームを受信しています。データは32ビットのBGRX形式でパックされています。このデータをTexture2dに直接移動したいのですが、一致するSurfaceFormatが見つかりません。私が見つけることができる最も近いものは32bit RGBXに見えるSurfaceFormat.Colorです。XNAにはBGRA/BGRXサーフェス形式がありますか?
互換フォーマットがないと仮定します。何が2Dテクスチャにデータを変換してプッシュする最も簡単な方法です
私が良いでしょう。このような何かを考えていたが、それはフレームレートが遅くているようだ:
編集を:私は少しのアルゴリズムを変更今はまともに走っているようだ。
void nui_VideoFrameReady(object sender, ImageFrameReadyEventArgs e)
{
byte x;
for (int i = 0; i < e.ImageFrame.Image.Bits.Length; i += 4)
{
x = e.ImageFrame.Image.Bits[i];
e.ImageFrame.Image.Bits[i] = e.ImageFrame.Image.Bits[i + 2];
e.ImageFrame.Image.Bits[i + 2] = x;
}
canvas.SetData(e.ImageFrame.Image.Bits);
}