KinectV2Core.KinectCoreV2.colorReader_FrameArrived C# (CSharp) Method

colorReader_FrameArrived() public method

public colorReader_FrameArrived ( object sender, ColorFrameArrivedEventArgs e ) : void
sender object
e ColorFrameArrivedEventArgs
return void
        void colorReader_FrameArrived(object sender, ColorFrameArrivedEventArgs e)
        {
            using (ColorFrame frame = e.FrameReference.AcquireFrame())
            {
                if (frame != null)
                {
                    FrameDescription desc = frame.FrameDescription;

                    KinectBase.ColorFrameEventArgs colorE = new KinectBase.ColorFrameEventArgs();
                    colorE.bytesPerPixel = 4; //This is fixed to 4 because we are converting to bgra below)
                    colorE.pixelFormat = PixelFormats.Bgra32;
                    colorE.height = desc.Height;
                    colorE.width = desc.Width;
                    colorE.kinectID = kinectID;
                    colorE.timeStamp = frame.RelativeTime;
                    colorE.isIR = false;
                    colorE.image = colorImagePool.GetObject();
                    //colorE.image = new byte[desc.LengthInPixels * colorE.bytesPerPixel];
                    //frame.CopyConvertedFrameDataToArray(colorE.image, ColorImageFormat.Bgra);
                    unsafe
                    {
                        fixed (byte* ptr = colorE.image)
                        {
                            frame.CopyConvertedFrameDataToIntPtr((IntPtr)ptr, desc.LengthInPixels * sizeof(byte) * 4, ColorImageFormat.Bgra);
                        }
                    }

                    OnColorFrameReceived(colorE);
                }
            }
        }