отключение автофокусировки программно?

#c# #focus #edsdk #canon-sdk

#c# #фокусировка #edsdk #canon-sdk

Вопрос:

У меня есть EOS 1100D, и я использую edsdk для съемки камерой со своего компьютера.
в ручном режиме я должен иметь возможность изменять все свойства, а в утилите EOS, выпущенной Canon, в ручном режиме пользователь может переключаться между автофокусировкой и MF. Итак, должно быть свойство!

Что я нашел в EDSDK.cs, так это:

     /*---------------------------------------------
     Focus Info
    ----------------------------------------------*/
    [StructLayout(LayoutKind.Sequential)]
    public struct EdsFocusPoint
    {
        public uint valid;
        public uint selected;
        public uint justFocus;
        public EdsRect rect;
        public uint reserved;
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct EdsFocusInfo
    {
        public EdsRect imageRect;
        public uint pointNumber;

        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
        public EdsFocusPoint[] focusPoint;
        public uint executeMode;
    }
  

Как я могу это установить executeMode ?
На самом деле, я должен установить, что для AF и что для MF?

Ответ №1:

вы можете сделать это с помощью EdsSendCommand, где inCommand — это kEdsCameraCommand_PressShutterButton, а inParam — одно из значений kEdsCameraCommand_ShutterButton_.
С его помощью вы можете управлять кнопкой выключения (т. е. нажимать ее удаленно).
Чтобы сделать снимок без автофокусировки, вы просто используете значение CameraCommand_ShutterButton_Completely_NonAF
Но не забудьте вернуть ему значение CameraCommand_ShutterButton_OFF после того, как вы сделали снимок! В документации EDSDK вы можете найти подробную информацию на стр. 42 и 43.

Комментарии:

1. Спасибо за ваш ответ, Йоханнес. Я загрузил документацию EDSDK , и в той части, которую вы упомянули, в поле описания написано: Управляет работой кнопки спуска затвора. Эта команда поддерживается камерами EOS 50D или EOS 5D Mark II или более поздними версиями. Как я уже сказал, моя камера — EOS 1100D. Итак, похоже, у меня это не работает.

2. @ayssa да, это действительно работает для 1100D. «Позже» означает «выпущено позже». 50D был выпущен в 2008 году, а 1100D — в 2011. просто попробуйте, и вы увидите.