我想在WinForm中显示手机摄像头拍摄控件的图像。我的想法是我的应用程序像摄像机程序一样工作。我希望像用户打算拍照一样显示图像。
我该怎么做?我能这样做吗?
如果您需要更多详情,请问我。
谢谢!
答案 0 :(得分:8)
不太确定您需要什么,但您可以尝试使用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
答案 1 :(得分:3)
你想要的是预览,而不是捕捉,这要困难得多。最好的(也许是唯一的)解决方案是在过滤器图形中插入一个DShow过滤器,将预览窗口传送到您想要的位置。
COM是Compact Framework中的一只熊,无论您使用什么平台,DShow都很难。网上有一些资源,例如DShow.NET library at sourceforge和Alex Mogurenko's blog,但没有特定的资源来创建捕获。
WinMo SDK中有一个本机捕获示例,可以帮助您实现这一目标。
答案 2 :(得分:1)
我认为你应该使用sdk或类似的东西直接对硬件进行编程。
由于直接针对硬件的编程通常是用c / c ++编写的,因此sdk可能是原生的。所以要么你可能必须使用pinvoke和不安全的关键字。
但首先你应该找到访问相机的方法,因为这取决于硬件,你可以从手机制造商的网站开始。
答案 3 :(得分:1)
检查来自OpenNetCF.org的SmartDeviceFramework有一些PocketPC工具,包括从相机中捕获帧。