Example #1
0
 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;
        }