【发布时间】:2011-09-14 09:55:56
【问题描述】:
我有一个来自 Kinect 的视频流。它的数据以 32 位 BGRX 格式打包。我想将此数据直接移动到 Texture2d 中,但找不到匹配的 SurfaceFormat。我能找到的最接近的是 SurfaceFormat.Color,它看起来是 32 位 RGBX。
假设没有兼容的格式。将数据转换并推送到纹理 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);
}
【问题讨论】: