1

コードを使用して、Windows Mobile 6.5 のカメラ解像度を変更したいと考えていました。私のコードスニペットは以下の通りです。

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

1 に答える 1

1

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;

相違点は、自由に定義された Size オブジェクトを使用せず、CameraCaptureDialog クラスによって指定された既存の解像度 const を使用することです。

前述のように、サポートされている解決策のリストがレジストリにあるはずです。別のコードでは、次を使用して既知の解像度を取得します。

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;
}

ただし、前述のように、これはカメラの OEM 実装によって異なります。

〜ヨセフ

于 2012-10-27T04:37:58.443 に答える