我想展示手机摄像头在 WinForm 中控制的图像。这个想法是我的应用程序像相机程序一样工作。我想显示图像,就像用户要拍照一样。
我怎样才能做到这一点?我可以这样做吗?
如果您需要更多详细信息,请询问我。
谢谢!
我想展示手机摄像头在 WinForm 中控制的图像。这个想法是我的应用程序像相机程序一样工作。我想显示图像,就像用户要拍照一样。
我怎样才能做到这一点?我可以这样做吗?
如果您需要更多详细信息,请询问我。
谢谢!
不太确定您需要什么,但您可以尝试使用 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/mp/12881# M4083
您想要的是预览,而不是捕获,这要困难得多。最好的(也许是唯一的)解决方案是将 DShow 过滤器插入到过滤器图中,以将预览窗口通过管道传输到您想要的位置。
COM 是 Compact Framework 中的一只熊,无论您在哪个平台上,DShow 都非常强大。有一些在线资源,例如sourceforge 上的 DShow.NET 库和Alex Mogurenko 的博客,但没有特定于创建捕获的资源。
WinMo SDK 中有一个本机捕获示例,可以作为帮助您到达那里的有用指南。
我认为您应该直接使用 sdk 或类似的东西对硬件进行编程。
由于直接针对硬件进行编程通常是在 c/c++ 中,因此 sdk 可能是本机的。所以要么你可能不得不使用 pinvoke 和 unsafe 关键字。
但首先你应该找到访问相机的方法,因为这取决于硬件,你可以从手机制造商的网站开始。
从OpenNetCF.org检查 SmartDeviceFramework有一些用于 PocketPC 的工具,包括从相机捕获帧。