public void LoadParameters(string parameters_file)
        {
            uEye.Defines.Status statusRet = 0;

            Int32[] memList;
            statusRet = Camera.Memory.GetList(out memList);
            if (statusRet != uEye.Defines.Status.Success)
            {
                throw new Exception("Get memory list failed: " + statusRet);
            }

            statusRet = Camera.Memory.Free(memList);
            if (statusRet != uEye.Defines.Status.Success)
            {
                throw new Exception("Free memory list failed: " + statusRet);
            }

            statusRet = Camera.Parameter.Load(parameters_file);
            if (statusRet != uEye.Defines.Status.Success)
            {
                throw new Exception("Loading parameter failed: " + statusRet);
            }

            uEye.Types.Size <int> t = new uEye.Types.Size <int>();


            statusRet = Camera.Memory.Allocate();
            if (statusRet != uEye.Defines.Status.SUCCESS)
            {
                throw new Exception("Allocate Memory failed");
            }
        }
        private IImage MemoryToImage(int idx)
        {
            uEye.Defines.ColorMode mode;
            Camera.PixelFormat.Get(out mode);
            ImageChannelDepth depth = ImageChannelDepth.Depth8;
            int channels            = 0;

            if (mode == uEye.Defines.ColorMode.Mono8)
            {
                channels = 1;
                depth    = ImageChannelDepth.Depth8;
            }
            else if (mode == uEye.Defines.ColorMode.BGR8Packed || mode == uEye.Defines.ColorMode.RGB8Packed)
            {
                channels = 3;
                depth    = ImageChannelDepth.Depth8;
            }
            else if (mode == uEye.Defines.ColorMode.BGRA8Packed)
            {
                channels = 3;
                depth    = ImageChannelDepth.Depth8;
            }
            else
            {
                throw new Exception("unknown image format");
            }

            var size = new uEye.Types.Size <int>();

            Camera.Memory.GetSize(idx, out size);
            int pitch;

            Camera.Memory.GetPitch(idx, out pitch);

            if (ManagedImage)
            {
                Byte[] u8img;
                Camera.Memory.CopyToArray(idx, out u8img);
                return(new ByteImage(size.Width, size.Height, channels, depth, u8img, pitch));
            }
            else
            {
                var ptr = new IntPtr();
                Camera.Memory.ToIntPtr(idx, out ptr);
                var img = new RawImage(size.Width, size.Height, channels, depth, ptr, pitch);

                return(new WpfImage(img.BitmapSource));
            }
        }