【发布时间】:2010-11-08 03:09:55
【问题描述】:
我想在 WinForm 中显示手机摄像头在控件上的图像。这个想法是我的应用程序像相机程序一样工作。我想显示图像,就像用户要拍照一样。
我该怎么做?我可以这样做吗?
如果您需要更多详细信息,请咨询我。
谢谢!
【问题讨论】:
-
检查来自DirectShowNETCF的相机示例
标签: c# windows-mobile compact-framework camera
我想在 WinForm 中显示手机摄像头在控件上的图像。这个想法是我的应用程序像相机程序一样工作。我想显示图像,就像用户要拍照一样。
我该怎么做?我可以这样做吗?
如果您需要更多详细信息,请咨询我。
谢谢!
【问题讨论】:
标签: c# windows-mobile compact-framework camera
不太确定您需要什么,但您可以尝试使用 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
【讨论】:
您想要的是预览,而不是捕获,这要困难得多。最好的(也许是唯一的)解决方案是将 DShow 过滤器插入过滤器图中,以将预览窗口通过管道传输到您想要的位置。
COM 是 Compact Framework 中的一只熊,无论您在哪个平台上,DShow 都非常强大。网上有一些资源,例如 DShow.NET library at sourceforge 和 Alex Mogurenko's blog,但没有专门针对创建捕获的资源。
WinMo SDK 中有一个本机捕获示例,可作为帮助您实现目标的有用指南。
【讨论】:
检查来自OpenNetCF.org 的 SmartDeviceFramework 有一些用于 PocketPC 的工具,包括从相机捕获帧。
【讨论】:
我认为你应该直接使用 sdk 或类似的东西对硬件进行编程。
由于直接针对硬件进行编程通常是在 c/c++ 中,所以 sdk 可能是原生的。所以要么你可能不得不使用 pinvoke 和 unsafe 关键字。
但首先您应该找到访问相机的方法,并且由于这取决于硬件,您可以从手机制造商的网站开始。
【讨论】: