Kinect v2 for windows:调整颜色框架在c#

任何人都知道,如果可能的话,如何降低色彩stream动的动力帧分辨率? 因为全高清尺寸太高,我的范围。感谢我发现这个代码全高清帧:

private BitmapSource ToBitmap(ColorFrame frame) { int width = frame.FrameDescription.Width; int height = frame.FrameDescription.Height; PixelFormat format = PixelFormats.Bgr32; byte[] pixels = new byte[width * height * ((PixelFormats.Bgr32.BitsPerPixel + 7) / 8)]; if (frame.RawColorImageFormat == ColorImageFormat.Bgra) { frame.CopyRawFrameDataToArray(pixels); } else { frame.CopyConvertedFrameDataToArray(pixels, ColorImageFormat.Bgra); } int stride = width * format.BitsPerPixel / 8; return BitmapSource.Create(width, height, 96, 96, format, null, pixels, stride); } 

Solutions Collecting From Web of "Kinect v2 for windows:调整颜色框架在c#"

我已经解决了在最后添加这个代码

 BitmapSource bitmap= BitmapSource.Create(width, height, 96, 96, format, null, pixels, stride); ScaleTransform scale=new ScaleTransform((Width / bitmap.PixelWidth),(Height / bitmap.PixelHeight)); TransformedBitmap tbBitmap = new TransformedBitmap(bitmap, scale); return tbBitmap; 

所以完整的方法是:

 private BitmapSource ToBitmap(ColorFrame frame) { int width = frame.FrameDescription.Width; int height = frame.FrameDescription.Height; PixelFormat format = PixelFormats.Bgr32; byte[] pixels = new byte[width * height * ((PixelFormats.Bgr32.BitsPerPixel + 7) / 8)]; if (frame.RawColorImageFormat == ColorImageFormat.Bgra) { frame.CopyRawFrameDataToArray(pixels); } else { frame.CopyConvertedFrameDataToArray(pixels, ColorImageFormat.Bgra); } int stride = width * format.BitsPerPixel / 8; BitmapSource bitmap= BitmapSource.Create(width, height, 96, 96, format, null, pixels, stride); ScaleTransform scale=new ScaleTransform((640.0 / bitmap.PixelWidth),(480.0 / bitmap.PixelHeight)); TransformedBitmap tbBitmap = new TransformedBitmap(bitmap, scale); return tbBitmap; }