как сделать снимок с цифровой камеры, подключенной к моему компьютеру через USB-кабель с помощью vb.net, asp.net или C #?

Я пишу приложение для редактирования изображений Windows Forms, используя vb.net/c#. У меня есть требование клиента сделать снимок с цифрового фотоаппарата, подключенного к компьютеру.

как я могу сделать снимок с цифрового фотоаппарата, подключенного к USB, в моем приложении Windows?


person bugBurger    schedule 16.09.2008    source источник


Ответы (6)


Если вы используете библиотеку Windows Image Acquisition, вы увидите там события для захвата новых событий изображения с камеры. У меня было аналогичное требование, и я написал тестовую установку; мы пошли в местный магазин фотоаппаратов и попробовали все фотоаппараты, которые у них были. Мы смогли найти только камеры, поддерживающие эту функцию, - это камеры Nikon серии D.

Мы обнаружили, что с большинством камер вы даже не можете сделать снимок, когда они подключены к сети. Когда вы подключаете их к USB-порту, большинство камер переключается в режим, в котором единственное, что они будут делать, - это передавать данные. Самый быстрый способ узнать, будет ли камера вообще работать, - это подключить ее к ПК, а затем попытаться сделать снимок. Если он позволяет вам это сделать, у вас есть шанс. Он также должен поддерживать PTP.

person Community    schedule 01.03.2009
comment
Мэтт @ Nikon серии D Поддержите это действие? - person Hossein Moradinia; 03.04.2011

Я предполагаю, что вы хотите активировать действие по фотографированию с компьютера, к которому подключена камера. Если это так, то первое, что я сделал бы, - это поискал API для этой конкретной модели камеры. Я не верю, что существует стандартный протокол / структура для взаимодействия с цифровыми камерами, кроме доступа к карте памяти внутри камеры.

person Sam    schedule 16.09.2008

Это зависит от интерфейса, который экспортирует камера. Если это стандартный интерфейс запоминающего устройства, вы просто используете стандартный файловый интерфейс, то есть вы будете видеть камеру как съемный диск и можете использовать стандартные операции создания / чтения / записи / файла.
Многие новые камеры имеют интерфейс ptp (протокол передачи изображений). . Поэтому вам потребуется использовать API получения изображений Windows.

Вам может пригодиться следующая ссылка. Если я правильно понимаю, это пример кода именно того, что вы ищете. Гугл твой друг :)

Еще одна информация: многие камеры будут поддерживать как запоминающие устройства, так и интерфейсы ptp, и их можно будет выбрать с помощью пользовательского интерфейса камеры. В случае автоматического режима камера, вероятно, переключится на интерфейс ptp.

person Ilya    schedule 16.09.2008
comment
Спасибо, я прочитал документ WIA, может быть, он для c / c ++? Не для VB.nET, C # - person bugBurger; 16.09.2008

Обычно камера отображается как съемный диск при подключении.

Итак, для приложения Winforms просто позвольте пользователю выбрать диск и изображение, которое вы хотите загрузить. Вы можете выполнять любую обработку, если у вас есть FileStream изображения.

В ASP.net вам понадобится FileUpload Control, где пользователь снова может выбрать диск и изображение для загрузки. На этот раз обработка будет осуществляться через MemoryStream для объекта HttpRequest.Files.

Надеюсь, это поможет.

person Alex Duggleby    schedule 16.09.2008

Это зависит от вашей камеры.

Многие камеры можно просто установить как запоминающие устройства USB. В этом случае вы можете просто скопировать файл из видимой файловой системы, как любой другой файл на внешнем диске.

Если камера не предоставляет доступ к своему содержимому таким образом, вам необходимо просмотреть документацию по драйверу камеры, чтобы узнать, как они рекомендуют с ней взаимодействовать.

person Sean McMains    schedule 16.09.2008