Ejemplo n.º 1
0
        /// <summary>
        /// Для синхронизации GUI и потока съемки: Вывод каждого снятого кадра в свое место
        /// </summary>
        /// <param name="img"></param>
        public void SetCadr(Image img)
        {
            //Получить контрол
            var index   = GetNextFotoIndex();
            var control = _imagesControlList[index];

            if (control.InvokeRequired)
            {
                var d = new GetImageHanlder(SetCadr);
                this.Invoke(d, new object[] { img });
            }
            else
            {
                control.Image = _serviceProvider.GetService <ImageEditorService>().ScaleImage(img, 1920, 1280);

                Debug.WriteLine("wefwef" + Thread.CurrentThread.Name);

                //Если стояло выделение - убрать его
                if (control.IsNeedReFoting)
                {
                    control.ChooseForRefoting(_imgChoose);
                }

                ButtonValidate();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// получить фото с камеры
        /// </summary>
        /// <returns></returns>
        public void TakePhoto(GetImageHanlder handler, Action actionIfException)
        {
            try
            {
                _cameraHandler.SetSetting(EDSDK.PropID_SaveTo, (uint)EDSDK.EdsSaveTo.Host);
                _cameraHandler.SetCapacity();

                _cameraHandler.ImageHandler = handler;
                _cameraHandler.TakePhoto(actionIfException);
            }
            catch (Exception)
            {
                //Если прилетает ошибка от СДК о невозможности сделать фото
                throw new FocusGetExceptions();
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Добавить подписчика на трансляцию кадров с фотокамеры
 /// </summary>
 /// <param name="handler"></param>
 public void AddSubscriber(GetImageHanlder handler)
 {
     if (_cameraHandler.MainCamera != null)
     {
         if (IsActivated)
         {
             _viewerHandler = handler;
             StartLiveView();
         }
         else
         {
             throw new Exception("Сервис не был активирован");
         }
     }
     else
         throw new Exception("Список камер пуст, активация кадрового потока не возможна");
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Для синхронизации GUI и потока съемки: Вывод liveView
 /// </summary>
 /// <param name="img"></param>
 public void SetLiveViewCadr(Image img)
 {
     if (pbLiveView.InvokeRequired)
     {
         try
         {
             var d = new GetImageHanlder(SetLiveViewCadr);
             this.Invoke(d, new object[] { img });
         }
         catch (Exception)
         {
         }
     }
     else
     {
         pbLiveView.Image = img;
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Добавить подписчика на трансляцию кадров с фотокамеры
 /// </summary>
 /// <param name="handler"></param>
 public void AddSubscriber(GetImageHanlder handler)
 {
     if (_cameraHandler.MainCamera != null)
     {
         if (IsActivated)
         {
             _viewerHandler = handler;
             StartLiveView();
         }
         else
         {
             throw new Exception("Сервис не был активирован");
         }
     }
     else
     {
         throw new Exception("Список камер пуст, активация кадрового потока не возможна");
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Для синхронизации GUI и потока съемки: Вывод каждого снятого кадра в свое место
        /// </summary>
        /// <param name="img"></param>
        public void SetCadr(Image img)
        {
            //Получить контрол
            var index = GetNextFotoIndex();
            var control = _imagesControlList[index];

            if (control.InvokeRequired)
            {
                var d = new GetImageHanlder(SetCadr);
                this.Invoke(d, new object[] { img });
            }
            else
            {
                control.Image = _serviceProvider.GetService<ImageEditorService>().ScaleImage(img, 1920, 1280);

                Debug.WriteLine("wefwef" + Thread.CurrentThread.Name);

                //Если стояло выделение - убрать его
                if (control.IsNeedReFoting)
                    control.ChooseForRefoting(_imgChoose);

                ButtonValidate();
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Для синхронизации GUI и потока съемки: Вывод liveView
        /// </summary>
        /// <param name="img"></param>
        public void SetLiveViewCadr(Image img)
        {
            if (pbLiveView.InvokeRequired)
            {
                try
                {
                    var d = new GetImageHanlder(SetLiveViewCadr);
                    this.Invoke(d, new object[] { img });
                }
                catch (Exception)
                {

                }

            }
            else
            {
                pbLiveView.Image = img;
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// получить фото с камеры
        /// </summary>
        /// <returns></returns>
        public void TakePhoto(GetImageHanlder handler,Action actionIfException)
        {
            try
            {
                _cameraHandler.SetSetting(EDSDK.PropID_SaveTo, (uint)EDSDK.EdsSaveTo.Host);
                _cameraHandler.SetCapacity();

                _cameraHandler.ImageHandler = handler;
                _cameraHandler.TakePhoto(actionIfException);
            }
            catch (Exception)
            {
                //Если прилетает ошибка от СДК о невозможности сделать фото
                throw new FocusGetExceptions();

            }
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Убрать подписчиков на получение кадров с камеры
 /// </summary>
 public void RemoveSubscriber()
 {
     _viewerHandler = null;
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Убрать подписчиков на получение кадров с камеры
 /// </summary>
 public void RemoveSubscriber()
 {
     _viewerHandler = null;
 }