Я надеюсь получить общее руководство по выполнению, казалось бы, простой цели. У меня есть зеркальная камера (Canon EOS 50D), и мне нужно написать приложение, которое скажет камере сделать снимок. Мне также нужно перенести изображение на компьютер и, возможно, удалить его из хранилища камеры. Бонусом было бы получить предварительный просмотр с камеры в моем приложении. Моя среда будет Windows (либо XP Pro или Vista Enterprise) и .Net 3.5 (C #).
Я провел некоторое исследование и нашел несколько вариантов. Один, который я знаю, будет работать, но в будущем я ограничусь использованием только камер Canon. Я нашел и загрузил SDK от Canon, который предоставляет множество этих функций. Я просмотрел SDK, и хотя он обширный и написан на C, в нем есть обертки C #, которые немного ускорят разработку.
Другой вариант, который я нашел, называется «Переносные устройства Windows». По-видимому, это API, который будет общаться с устройствами, которые реализуют стандарты PTP и MTP. Он основан на COM, и, насколько я могу судить, у него нет оболочки .Net. Это, однако, не ограничитель показа. Я мог бы вызвать P / Invoke нужную мне функциональность или написать управляемую C ++ DLL для использования в моем приложении для общения с камерой.
Я ищу кого-нибудь, кто имеет опыт работы с WPD, чтобы дать мне указатели. Я просмотрел документацию и видел ссылки на передачу изображений и удаление изображений. Однако я не видел упоминаний о командах, чтобы сделать снимок, получить изображение для предварительного просмотра или сказать фокус / автофокус.