Example #1
0
        public System.Drawing.Image DIOSnapPictureEx(UInt64 dwStrmId)
        {
            MyLog4Net.ILogExtension.DebugWithDebugView(MyLog4Net.Container.Instance.Log, "IVXStreamIOSDKProtocol StrmGrabPictureData dwStrmId:" + dwStrmId);


            int    buflen     = Common.MAX_PIC_DATA_LEN;
            IntPtr picbuf     = IntPtr.Zero;
            int    picdatalen = 0;

            uint retVal = IVXStreamIOSDKProtocol.StrmGrabPictureData(dwStrmId, picbuf, out picdatalen, eSNAP_TYPE.SNAP_BMP);

            if (picdatalen > buflen && picdatalen > 0)
            {
                if (picbuf != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(picbuf);
                }

                buflen     = picdatalen;
                picbuf     = Marshal.AllocHGlobal((int)buflen);
                picdatalen = 0;
                retVal     = IVXStreamIOSDKProtocol.StrmGrabPictureData(dwStrmId, picbuf, out picdatalen, eSNAP_TYPE.SNAP_BMP);
            }

            if (retVal > 0)
            {
                DIO_GetError(retVal);
            }
            System.Drawing.Image img = null;//DataModel.Common.GetImage(picbuf, (int)buflen);
            if (picbuf != IntPtr.Zero)
            {
                img = Common.GetImage(picbuf, (int)buflen);
                Marshal.FreeHGlobal(picbuf);
            }

            MyLog4Net.ILogExtension.DebugWithDebugView(MyLog4Net.Container.Instance.Log, "IVXStreamIOSDKProtocol StrmGrabPictureData ret:" + 0);

            return(img);
        }