Array2Image() public static method

public static Array2Image ( byte data, int width, int height, int stride ) : byte>.Image
data byte
width int
height int
stride int
return byte>.Image
Exemplo n.º 1
0
        private void depth_FrameReady(object sender, DepthImageFrameReadyEventArgs e)
        {
            current_frame_number_for_stop++;
            if (waiting == 0)
            {
                waiting += 2;
            }
            else
            {
                waiting++;
            }
            using (DepthImageFrame depthFrame = e.OpenDepthImageFrame())
            {
                if (depthFrame != null)
                {
                    int count       = 0;
                    int frameNumber = 0;
                    if (depthFrame.Timestamp == 0)
                    {
                        waiting -= 1;
                        return;
                    }

                    if (depthFrame.Timestamp < FirstTimeStamp)
                    {
                        FirstTimeStamp = depthFrame.Timestamp;
                    }

                    frameNumber         = GetRealCurrentFrame(depthFrame.Timestamp - FirstTimeStamp);
                    count               = frameNumber - PreDepthFrameNumber;
                    PreDepthFrameNumber = frameNumber;
                    //Console.WriteLine("Depth {0} {1} {2} {3} {4}", FirstTimeStamp, depthFrame.Timestamp, depthFrame.Timestamp - FirstTimeStamp, frameNumber, count);

                    depthFrame.CopyDepthImagePixelDataTo(depthPixels);
                    //int minDepth = depthFrame.MinDepth;
                    //int maxDepth = depthFrame.MaxDepth;
                    int width  = depthFrame.Width;
                    int height = depthFrame.Height;
                    //Console.WriteLine("Depth:{0} {1}" ,DepthTS,count);

                    colorizer.TransformAndConvertDepthFrame(depthPixels, _colorPixels);

                    var depthImg = ImageConverter.Array2Image(_colorPixels, width, height, width * 4).Convert <Bgr, byte>();
                    if (depthImg.Ptr != IntPtr.Zero)
                    {
                        for (int i = 0; i < count; i++)
                        {
                            if (depthWriter != null)
                            {
                                depthWriter.WriteFrame(depthImg);
                            }
                        }
                    }
                }
            }
            waiting -= 1;
        }
Exemplo n.º 2
0
        private void color_FrameReady(object sender, ColorImageFrameReadyEventArgs e)
        {
            current_frame_number_for_stop++;
            if (waiting == 0)
            {
                waiting += 2;
            }
            else
            {
                waiting++;
            }
            using (ColorImageFrame colorFrame = e.OpenColorImageFrame())
            {
                if (colorFrame != null)
                {
                    int count       = 0;
                    int frameNumber = 0;
                    if (colorFrame.Timestamp == 0)
                    {
                        waiting -= 1;
                        return;
                    }

                    if (colorFrame.Timestamp < FirstTimeStamp)
                    {
                        FirstTimeStamp = colorFrame.Timestamp;
                    }

                    frameNumber         = GetRealCurrentFrame(colorFrame.Timestamp - FirstTimeStamp);
                    count               = frameNumber - PreColorFrameNumber;
                    PreColorFrameNumber = frameNumber;
                    //Console.WriteLine("Color {0} {1} {2} {3} {4}", FirstTimeStamp, colorFrame.Timestamp, colorFrame.Timestamp - FirstTimeStamp, frameNumber,count);

                    colorFrame.CopyPixelDataTo(this._colorPixels);
                    var img = ImageConverter.Array2Image(_colorPixels, 640, 480, 640 * 4).Convert <Bgr, byte>();
                    if (img.Ptr != IntPtr.Zero)
                    {
                        for (int i = 0; i < count; i++)
                        {
                            if (colorWriter != null)
                            {
                                colorWriter.WriteFrame(img);
                            }
                        }
                    }
                }
            }
            waiting -= 1;
        }