views:

1565

answers:

3

Hi,

I know how to capture a camera snaphot on Windows Mobile 5.0/6 using SHCameraCapture. But is there something more extensive that allows me much finer control? Namely to get available zoom levels and to set the zoom level programmatically, also e.g. different ISO modes / lightsensitivity and setting of macro mode if available. (I.e. similar to what JSR 234 offers).

My project is probably going to be written in C++.

Update: It is supposed to run on all available WM 5.0 and 6 devices. I am looking for a generic solution that is not specific to a particular model.

+1  A: 

For the ISO modes, light sensitivity and other advanced controls etc. it is usually device specific from everything I've seen. I know different manufacturers will expose their imager libraries through their SDKs. What sort of mobile device are you using? Check with the manufacturer for an API exposed through their SDK.

For simple stuff you've probably already had a look at the following Class:

CameraCaptureDialog Class

And for things like image quality this one:

CameraCaptureStillQuality Enumeration

** Note: These are for Windows Mobile 6.

Mat Nadrofsky
This is supposed to run on all available WM 5.0 and 6 devices. I am looking for a generic solution that is not specific to a particular model. I looked at the provided links, these are basically the SHCameraCapture functionality encapsluated into .NET (which I do not want to use anyway).
Steven
A: 

Via some other question on SO I found http://blogs.msdn.com/marcpe/archive/2006/03/03/542941.aspx which offers another (generic) way of accessing the camera. I haven't yet figured out yet what and how I can set options like zoom etc, but I guess that'd be the way to go.

Steven
A: 

I've modified and used the code in the sample you linked to (the code basically wraps DirectShow). It will not let you control the aspects of the camera that you want to control (zoom, light sensitivity etc.). If cameras even have these features and the features are exposed at all, it is only through their API and is thus device-specific.

You can use the code to programmatically set the resolution (although this is tricky) and fire the camera, and get the picture as a bitmap that you can then do anything you want with, so you could implement your own zoom feature, color filters etc. BTW, if you did this successfully, I think you would end up with a commercially viable product because there is absolutely nothing that does this in the Windows Mobile world (hope I'm proven wrong by another answer).

I also learned from that code why (cheap) digital cameras always take pictures late when they use the screen as a viewfinder (which is why your pictures never look the way you want them to), and why this is a fundamentally unfixable problem (at least in cheaper digital cameras).

MusiGenesis