protected virtual void FireColorFrameEvent(KinectColorFrameEventArgs e) { if (KinectColorFrameEventHandler != null) { KinectColorFrameEventHandler(this, e); } }
private void ColorFrameHandler(object sender, KinectColorFrameEventArgs e) { if (pixels == null) { pixels = new byte[e.ImageFrame.PixelDataLength]; } e.ImageFrame.CopyPixelDataTo(pixels); //// A WriteableBitmap is a WPF construct that enables resetting the Bits of the image. //// This is more efficient than creating a new Bitmap every frame. if (cameraSource == null) { cameraSource = new WriteableBitmap(e.ImageFrame.Width, e.ImageFrame.Height, 96, 96, PixelFormats.Bgr32, null); } int Bgr32BytesPerPixel = (PixelFormats.Bgr32.BitsPerPixel + 7) / 8; cameraSource.WritePixels(new Int32Rect(0, 0, e.ImageFrame.Width, e.ImageFrame.Height), pixels, e.ImageFrame.Width * Bgr32BytesPerPixel, 0); cameraFrame.Source = cameraSource; }