我想展示手機相機在WinForm中控制的圖像。這個想法是,我的應用程序像照相機的程序一樣工作。我想顯示圖像,如用戶是否要拍照。Windows Mobile:用C#使用手機的相機
我該怎麼做?我可以這樣做嗎?
如果您需要更多的細節問我。
謝謝!
我想展示手機相機在WinForm中控制的圖像。這個想法是,我的應用程序像照相機的程序一樣工作。我想顯示圖像,如用戶是否要拍照。Windows Mobile:用C#使用手機的相機
我該怎麼做?我可以這樣做嗎?
如果您需要更多的細節問我。
謝謝!
不是很確定你所需要的,但你可以嘗試使用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;
}
後來編輯: 你們當中有些人可能會發現有用此鏈接,太: http://community.intermec.com/t5/General-Development-Developer/CN50-MS-Camera-Capture-Dialog-generates-error/m-p/12881#M4083
我認爲你應該直接使用sdk或類似的東西對硬件編程。
由於直接對硬件進行編程通常是在c/C++中,sdk可能是本地的。所以要麼你可能不得不使用pinvoke和不安全的關鍵字。
但首先你應該找到訪問攝像頭的方式,因爲這是依賴於硬件的,所以你可以在手機制造商的網站上開始。
從OpenNetCF.org檢查SmartDeviceFramework有一些PocketPC工具,包括從Camera捕獲幀。
你想要的是預覽,而不是捕捉,這是更困難。最好的(也許是唯一的)解決方案是將DShow過濾器插入到過濾器圖表中,以將預覽窗口管理到您想要的位置。
COM是Compact框架中的一員,無論您使用哪種平臺,DShow都很困難。網上有一些資源,如DShow.NET library at sourceforge和Alex Mogurenko's blog,但沒有具體的創建捕獲。
在WinMo SDK中有一個本地捕獲示例,它將是一個有用的指導,幫助您實現這一目標。
謝謝您的回答。我沒有使用DShow。它是否與所有類型的Windows Mobile設備兼容?我在哪裏可以找到更多關於DShow的信息? – VansFannel 2009-07-05 15:23:31
也許是這樣的:http://www.codeproject.com/KB/mobile/samplegrabberfilter-wm6.aspx – VansFannel 2009-07-05 15:51:23
檢查來自[DirectShowNETCF](http://alexmogurenko.com/blog/directshownetcf/)的相機示例 – alex 2009-07-06 12:04:35