2012-10-24 6 views
0

Je voulais changer la résolution de la caméra dans Windows Mobile 6.5 par le code. mais cela ne fonctionne pas mon extrait de code est ci-dessous.Changement de la résolution de la caméra dans Windows Mobile 6.5

CameraCaptureDialog cameraCaptureDialog = new CameraCaptureDialog(); 
cameraCaptureDialog.Owner = this; 
cameraCaptureDialog.Resolution = new Size(800, 600); 
+0

Certaines caméras ne prennent pas en charge toutes les résolutions. Vous pouvez éventuellement obtenir une liste des résolutions prises en charge à partir du registre. Si vous choisissez une résolution non prise en charge, le code échouera. – josef

+0

Bonjour josef, Le périphérique prend en charge cette résolution, mais il n'est pas modifié par le code. Merci pour votre réponse –

Répondre

1

Voici un extrait que j'utilise pour démarrer le CameraCaptureDialog:

cameraDialog.Owner = this; 
cameraDialog.InitialDirectory = @"\My Documents"; 
cameraDialog.DefaultFileName = "test.jpg"; 
cameraDialog.Title = "iCOMM Camera Demo"; 
cameraDialog.StillQuality = CameraCaptureStillQuality.Default; 
cameraDialog.Mode = CameraCaptureMode.Still; 

Le diff est, que je ne pas utiliser un objet Taille défini gratuit, mais une résolution exisiting const donnée par la classe CameraCaptureDialog . Comme indiqué, il devrait y avoir une liste de résolutions prises en charge dans le registre. Dans un autre code que j'utilise ce qui suit pour obtenir les années res connues:

public cResolution[] getResolutions(){ 
cResolution[] cRes; 
RegistryKey rKey = Registry.LocalMachine.OpenSubKey(regSubResolution, false); 
string[] subKeys = rKey.GetSubKeyNames(); 
cRes = new cResolution[subKeys.Length]; 
int i=0; 
foreach (string s in subKeys) 
{ 
    RegistryKey rKeySub = Registry.LocalMachine.OpenSubKey(regSubResolution + "\\" + s, false); 
    string item; 
    int w, h, hqfs, nqfs, lqfs, pw, ph; 
    item = (string)rKeySub.GetValue("ItemString"); 
    w = (int)rKeySub.GetValue("Width"); 
    h = (int)rKeySub.GetValue("Height"); 
    hqfs = (int)rKeySub.GetValue("HighQualityFileSize"); 
    lqfs = (int)rKeySub.GetValue("LowQualityFileSize"); 
    nqfs = (int)rKeySub.GetValue("NormalQualityFileSize"); 
    ph = (int)rKeySub.GetValue("PreviewHeight"); 
    pw = (int)rKeySub.GetValue("PreviewWidth"); 
    cRes[i] = new cResolution(item, h, w, pw, ph, hqfs, nqfs, lqfs); 
    i++; 
    rKeySub = null; 
} 

Mais comme dit, cela dépend de la mise en œuvre OEM de la caméra.

~ josef

Questions connexes