我知道如何使用 SHCameraCapture 在 Windows Mobile 5.0/6 上捕获相机快照。但是有没有更广泛的东西可以让我更好地控制?即获得可用的缩放级别并以编程方式设置缩放级别,例如不同的 ISO 模式/感光度和微距模式的设置(如果可用)。(即类似于JSR 234提供的)。
我的项目可能会用 C++ 编写。
更新:它应该在所有可用的 WM 5.0 和 6 设备上运行。我正在寻找不特定于特定模型的通用解决方案。
我知道如何使用 SHCameraCapture 在 Windows Mobile 5.0/6 上捕获相机快照。但是有没有更广泛的东西可以让我更好地控制?即获得可用的缩放级别并以编程方式设置缩放级别,例如不同的 ISO 模式/感光度和微距模式的设置(如果可用)。(即类似于JSR 234提供的)。
我的项目可能会用 C++ 编写。
更新:它应该在所有可用的 WM 5.0 和 6 设备上运行。我正在寻找不特定于特定模型的通用解决方案。
对于 ISO 模式、感光度和其他高级控制等。从我所看到的一切来看,它通常是特定于设备的。我知道不同的制造商会通过他们的 SDK 公开他们的成像器库。您使用的是哪种移动设备?与制造商核实通过其 SDK 公开的 API。
对于简单的东西,您可能已经看过以下类:
对于图像质量之类的东西:
** 注意:这些适用于 Windows Mobile 6。
通过关于 SO 的其他一些问题,我发现http://blogs.msdn.com/marcpe/archive/2006/03/03/542941.aspx它提供了另一种(通用)访问相机的方式。我还没有弄清楚我可以设置什么以及如何设置缩放等选项,但我想这就是要走的路。
我已经修改并使用了您链接到的示例中的代码(代码基本上包含 DirectShow)。它不会让您控制您想要控制的相机方面(变焦、感光度等)。如果相机甚至具有这些功能并且完全暴露了这些功能,那么它只是通过它们的 API 来实现的,因此是特定于设备的。
您可以使用代码以编程方式设置分辨率(虽然这很棘手)并启动相机,并将图片作为位图获取,然后您可以做任何您想做的事情,这样您就可以实现自己的缩放功能、颜色过滤器等. 顺便说一句,如果你成功地做到了这一点,我认为你最终会得到一个商业上可行的产品,因为在 Windows Mobile 世界中绝对没有这样做(希望我被另一个答案证明是错误的)。
我还从该代码中了解到为什么(便宜的)数码相机在将屏幕用作取景器时总是拍得很晚(这就是为什么你的照片永远不会像你想要的那样),以及为什么这是一个根本无法解决的问题(在至少在便宜的数码相机中)。