Comment puis-je prendre une photo d'un appareil photo numérique connecté à mon ordinateur via un câble USB en utilisant vb.net ou asp.net ou C #?

StackOverflow https://stackoverflow.com/questions/75691

  •  09-06-2019
  •  | 
  •  

Question

Je suis en train d’écrire une application d’utilisation de formulaires Windows pour l’édition d’images en utilisant vb.net/c#. J'ai besoin d'un client pour capturer la photo à partir d'un appareil photo numérique connecté à un ordinateur.

comment puis-je capturer une photo à partir d'un appareil photo numérique connecté à un périphérique USB dans mon application Windows?

Était-ce utile?

La solution

Si vous utilisez la bibliothèque d’acquisition d’images Windows, vous y verrez les événements permettant de capturer les nouveaux événements d’image de la caméra. J'ai eu une exigence similaire et écrit un banc d'essai; nous sommes allés au magasin de caméras local et avons essayé toutes les caméras qu'ils avaient. Les seuls appareils photo compatibles avec cette fonctionnalité étaient les appareils photo Nikon série D.

Nous avons constaté qu'avec la plupart des appareils photo, vous ne pouvez même pas prendre une photo lorsqu'ils sont branchés. Lorsque vous les branchez sur le port USB, la plupart des appareils photo basculent dans un mode où ils ne font que transférer des données. Le moyen le plus rapide de savoir si un appareil photo fonctionnera est de le brancher sur un PC, puis d'essayer de prendre une photo. Si cela vous permet de le faire, vous avez une chance. Il doit également prendre en charge PTP.

Autres conseils

Cela dépend de l'interface exportée par la caméra. S'il s'agit d'une interface de stockage de masse standard, vous n'utilisez que l'interface de fichier standard, c'est-à-dire que vous verrez la caméra sous forme de disque amovible et que vous pourrez utiliser l'opération standard Créer / Lire / Écrire / Fichier.
Beaucoup de nouvelles caméras ont une interface ptp (Picture Transport Protocol). Vous devrez donc utiliser l’API Acquisition d’image Windows .

Vous pouvez trouver utile de suivre Lien . Si je comprends bien, ceci est un exemple de code pour exactement ce que vous recherchez. Google est votre ami :)

Autre information: de nombreuses caméras prendront en charge les interfaces de stockage de masse et ptp et pourront être sélectionnées par l’interface utilisateur de la caméra. En cas de mode automatique, la caméra utilisera probablement l’interface ptp.

Je suppose que vous souhaitez activer l'action consistant à prendre une photo de l'ordinateur auquel l'appareil photo est connecté. Si tel est le cas, la première chose que je ferais est de rechercher une API pour ce modèle de caméra particulier. Je ne crois pas qu'il existe un protocole / cadre standard pour interagir avec les appareils photo numériques en plus d'accéder à la carte mémoire dans l'appareil photo.

Habituellement, la caméra s'affiche sous forme de lecteur amovible lorsqu'elle est connectée.

Donc, pour une application Winforms, laissez simplement l'utilisateur sélectionner le lecteur et l'image que vous souhaitez télécharger. Vous pouvez effectuer n'importe quel traitement une fois que vous avez le FileStream de l'image.

Sous ASP.net, vous aurez besoin d’un contrôle FileUpload dans lequel l’utilisateur peut à nouveau sélectionner le lecteur et la photo à télécharger. Le traitement de cette heure s’effectuerait via MemoryStream sur l’objet HttpRequest.Files.

L’espoir que cela aide.

Cela dépend de votre appareil photo.

De nombreuses caméras seront simplement montées en tant que périphériques de stockage de masse USB. Si tel est le cas, vous pouvez simplement copier le fichier à partir du système de fichiers visible, comme vous le feriez avec tout autre fichier sur un disque externe.

Si l'appareil photo ne met pas son contenu à disposition de cette manière, vous devez consulter la documentation de son pilote pour savoir comment il est recommandé d'interagir avec elle.

Cela dépend de la marque de l'appareil photo. Voici un lien pour commencer avec Canon / a>.

scroll top