2009-07-04 7 views
8

Je souhaite montrer à l'image que l'appareil photo du téléphone portable prend un contrôle dans un WinForm. L'idée est que mon application fonctionne comme un programme de caméra. Je veux montrer l'image comme si l'utilisateur allait prendre une photo.Windows Mobile: utilisation de l'appareil photo du téléphone avec C#

Comment puis-je faire cela? Puis-je faire cela?

Si vous avez besoin de plus de détails, demandez-moi.

Merci!

+0

cochez Exemple d'appareil photo de [DirectShowNETCF] (http://alexmogurenko.com/blog/directshownetcf/) – alex

Répondre

8

Pas très sûr de ce que vous avez besoin, mais vous pouvez essayer d'utiliser Microsoft.WindowsMobile.Forms.CameraCaptureDialog:

string originalFileName; 
    using (CameraCaptureDialog dlg = new CameraCaptureDialog()) { 
     dlg.Mode = CameraCaptureMode.Still; 
     dlg.StillQuality = CameraCaptureStillQuality.Low; 
     //dlg.Resolution = new Size(800, 600); 
     dlg.Title = "Take the picture"; 
     DialogResult res; 
     try { 
      res = dlg.ShowDialog(); 
     } 
     catch (Exception ex) { 
      Trace.WriteLine(ex); 
      return null; 
     } 

     if (res != DialogResult.OK) 
      return null; 
     this.Refresh(); 
     originalFileName = pictureFileName = dlg.FileName; 
    } 

plus tard Edit: Certains d'entre vous pourraient trouver ce lien utile aussi: http://community.intermec.com/t5/General-Development-Developer/CN50-MS-Camera-Capture-Dialog-generates-error/m-p/12881#M4083

+1

Super morceau de code, merci! – dkarzon

1

Je pense que vous devriez programmer directement sur le matériel en utilisant un sdk ou quelque chose de similaire.

Étant donné que la programmation directe sur le matériel est généralement en c/C++, le sdk sera probablement natif. Donc soit vous devez probablement utiliser pinvoke et le mot-clé dangereux.

Mais d'abord, vous devriez trouver le moyen d'accéder à la caméra, et puisque cela dépend du matériel, vous pouvez commencer sur le site Web du fabricant du téléphone.

1

Vérifiez que SmartDeviceFramework de OpenNetCF.org dispose de certains outils pour PocketPC, y compris la capture d'images de la caméra.

3

Ce que vous voulez est un aperçu, pas la capture, ce qui est beaucoup plus difficile. La meilleure solution (et peut-être la seule) consiste à insérer un filtre DShow dans le filtre graphique pour diriger la fenêtre d'aperçu vers l'emplacement souhaité. COM est un ours dans le cadre compact, et DShow est dur, peu importe quelle plate-forme vous êtes sur. Il existe certaines ressources en ligne, comme les DShow.NET library at sourceforge et Alex Mogurenko's blog, mais rien de spécifique à la création d'une capture.

Il existe un exemple de capture native dans le SDK WinMo qui vous serait utile pour vous y rendre.

+0

Nous vous remercions de votre réponse. Je n'ai pas travaillé avec DShow. Est-il compatible avec tous les appareils Windows Mobile? Où puis-je trouver plus d'informations sur DShow? – VansFannel

+0

Peut-être que c'est quelque chose comme ça: http://www.codeproject.com/KB/mobile/samplegrabberfilter-wm6.aspx – VansFannel

+0

Je ne comprends pas cela: "... pour insérer un filtre DShow dans le filtre pour graver le fenêtre d'aperçu à l'endroit où vous voulez. " – VansFannel

Questions connexes