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);
}
}
}