2009-07-04 45 views
8

我想展示手機相機在WinForm中控制的圖像。這個想法是,我的應用程序像照相機的程序一樣工作。我想顯示圖像,如用戶是否要拍照。Windows Mobile:用C#使用手機的相機

我該怎麼做?我可以這樣做嗎?

如果您需要更多的細節問我。

謝謝!

+0

檢查來自[DirectShowNETCF](http://alexmogurenko.com/blog/directshownetcf/)的相機示例 – alex 2009-07-06 12:04:35

回答

8

不是很確定你所需要的,但你可以嘗試使用Microsoft.WindowsMo​​bile.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; 
    } 

後來編輯: 你們當中有些人可能會發現有用此鏈接,太: http://community.intermec.com/t5/General-Development-Developer/CN50-MS-Camera-Capture-Dialog-generates-error/m-p/12881#M4083

1

我認爲你應該直接使用sdk或類似的東西對硬件編程。

由於直接對硬件進行編程通常是在c/C++中,sdk可能是本地的。所以要麼你可能不得不使用pinvoke和不安全的關鍵字。

但首先你應該找到訪問攝像頭的方式,因爲這是依賴於硬件的,所以你可以在手機制造商的網站上開始。

3

你想要的是預覽,而不是捕捉,這是更困難。最好的(也許是唯一的)解決方案是將DShow過濾器插入到過濾器圖表中,以將預覽窗口管理到您想要的位置。

COM是Compact框架中的一員,無論您使用哪種平臺,DShow都很困難。網上有一些資源,如DShow.NET library at sourceforgeAlex Mogurenko's blog,但沒有具體的創建捕獲。

在WinMo SDK中有一個本地捕獲示例,它將是一個有用的指導,幫助您實現這一目標。

+0

謝謝您的回答。我沒有使用DShow。它是否與所有類型的Windows Mobile設備兼容?我在哪裏可以找到更多關於DShow的信息? – VansFannel 2009-07-05 15:23:31

+0

也許是這樣的:http://www.codeproject.com/KB/mobile/samplegrabberfilter-wm6.aspx – VansFannel 2009-07-05 15:51:23