Definir la resolution d'une webcam avec IAMStreamConfig [Résolu]

Messages postés
32
Date d'inscription
mercredi 13 avril 2005
Dernière intervention
13 janvier 2009
- - Dernière réponse : bibinutz
Messages postés
32
Date d'inscription
mercredi 13 avril 2005
Dernière intervention
13 janvier 2009
- 13 janv. 2009 à 15:04
Bonjour,

Voici mon but ! : afficher en plein ecran l'image de ma webcam utilisant la resolution max (1600x1200).
J'arrive à afficher l'image en plein ecran mais uniquement avec la configuration par defaut de la webcam.
J'ai essaye d'utiliser la dll avicap32 mais elle est limite en resolution à 640x480, idem avec la dll wia.
Je me suis donc dirige vers le directX et j'utilise à present la dll DShowNet.
J'arrive à recuperer la resolution à l'aide de la boite de dialogue ShowCapPinDialog. Je voudrais à present ne plus passer par cette boite de dialogue. J'ai effectue des recherches sur internet et j'ai trouve differentes sources mais je n'y arrive toujours pas. J'ai essaye de recuperer les infos avec GetNumberOfCapabilities, GetFormat mais il faut utiliser des pointeurs et il apparait des erreurs comme quoi cela n'est pas possible car c'est du code managé.

Je ne connais pas du tout le directX et je voulais savoir si quelqu'un peut me fournir des pistes ou eventuellement un bout de code.

Merci d'avance.

Stephan.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
32
Date d'inscription
mercredi 13 avril 2005
Dernière intervention
13 janvier 2009
3
Merci
Salut,

J'ai trouve une autre solution pour recuperer/modifier la resolution de la camera. J'utilise la dll Directx.capture avec la librairie DShowNET.

Pour modifier la resolution il suffit d'utiliser la methode framesize.

Voici la source qui m'a permis de solutionner mon probleme.

http://www.codeproject.com/KB/directx/directxcapture.aspx

Merci bibinutz 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de bibinutz
Messages postés
342
Date d'inscription
dimanche 26 janvier 2003
Dernière intervention
25 mars 2009
0
Merci
T'as plusieurs solutions.

La plus simple: programmer tout en C++ ;)
La 2nde: créer une DLL C++ managé qui gère le code DirectX en natif et qui te renvoit dans ton programme du code managé.
La 3ème: créer une DLL C++ qui gère le code DirectX et que tu appelle dans ton programme à grand coup de DllImport.
Commenter la réponse de bubbathemaster
Messages postés
32
Date d'inscription
mercredi 13 avril 2005
Dernière intervention
13 janvier 2009
0
Merci
Salut,

J'avais pensé à ce genre de possibilités mais je ne savais pas si cela était possible. On est obligé de passer par du code c ou c++ pour contourner le probleme ? Il ni a aucun moyen d'utiliser le C# ?

Donc, pour resumer un peu la situation, si je cree ma propre dll, il y aura une fonction qui me renverrait genre un int de la resolution de ma webcam et si je veux definir la resolution il y aura une fonction ds ma dll qui aura comme argument deux int correspondant à la resolution souhaitee et c'est le code en C++ qui va communiquer avec la webcam ?

Merci.

Stéphan
Commenter la réponse de bibinutz
Messages postés
342
Date d'inscription
dimanche 26 janvier 2003
Dernière intervention
25 mars 2009
0
Merci
Bein a moins que tu trouve une librairie .NET pour gérer les webcams, non il n'y a pas de moyen en c#.

Mais il faut bien voir que la DLL C++ managé c'est vraiment une solution plutot élégante. En ajoutant ce projet à ta solution, l'utilisation est totalement transparente, t'as l'impression d'utiliser des fonctions .NET normales, et tout le code natif qui tourne derrière t'es totalement caché.

Pour te mettre un peu en jambe, ajoute un projet de DLL C++ managé à ta solution. Le code natif doit s'éxécuter entre #pragma unmanaged/managed.
Commenter la réponse de bubbathemaster

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.