2010-07-30 20 views
1

J'utilise C# pour développer, je veux utiliser une caméra pour capturer une image dans mon application.
Pour autant que je sache, il y a deux choix: WebCam avecquelle méthode utilisez-vous pour capturer l'image avec caméra dans votre application?

[DllImport("avicap32.dll", EntryPoint="capCreateCaptureWindowA")] 

Et utiliser cette fonction pour capturer l'image dans le presse-papiers, et notre application peut obtenir l'image.

Choix 2: Utilisez directX pour capturer l'image, et j'ai trouvé un exemple de projet sur codeproject.
Ma question est la suivante: Quelle solution devrais-je choisir?
Que devrais-je considérer avant de faire un choix?
S'il vous plaît pointez-moi la bonne direction, merci!

Répondre

-1

Je pense qu'avec DirectX, nous pouvons obtenir plus de contrôle avec le matériel. L'utilisation de l'UC est généralement représentée par un pourcentage simple du temps CPU passé sur des tâches non-inactives. Mais c'est un peu une simplification. Dans tout système d'exploitation moderne, le processeur passe réellement du temps dans deux modes très distincts:

Mode noyau En mode noyau, le code d'exécution dispose d'un accès complet et sans restriction au matériel sous-jacent. Il peut exécuter n'importe quelle instruction de CPU et référencer n'importe quelle adresse de mémoire. Le mode noyau est généralement réservé aux fonctions les plus fiables du système d'exploitation. Les plantages en mode noyau sont catastrophiques; ils vont arrêter le PC entier.

Mode utilisateur En mode utilisateur, le code d'exécution n'a pas la capacité d'accéder directement au matériel ou à la mémoire de référence. Le code exécuté en mode utilisateur doit être délégué aux API système pour accéder au matériel ou à la mémoire. En raison de la protection offerte par ce type d'isolation, les plantages en mode utilisateur sont toujours récupérables. La plupart du code exécuté sur votre ordinateur s'exécutera en mode utilisateur.