1

を使用してcanon edsdk、カメラの画像設定が何であるかを検出しようとしています。これは、カメラが RAW に設定されている場合にアプリケーションが機能するためです。集めたユニットをどうすればいいのかわからないし、意味不明に見えてgetproperty何の役に立つのかわからないgetpropertydesc

これが私が現在これを試みている方法です:

    EdsdkWrapper.EdsPropertyDesc desc;
    error = EdsdkWrapper.EdsGetPropertyDesc(camera, EdsdkWrapper.PropID_ImageQuality, out desc);

    if (error != EdsdkWrapper.EDS_ERR_OK)
    {
      throw new Exception("Failed to get prop desc for image quality: " + GetErrorMessage(error));
    }

    uint data;

    error = EdsdkWrapper.EdsGetPropertyData(camera, EdsdkWrapper.PropID_ImageQuality,0, out data);
    string propertyName = GetPropertyName(data);


    error = EdsdkWrapper.EdsSetPropertyData(camera, EdsdkWrapper.PropID_ImageQuality,0,4, EdsdkWrapper.ImageSize_Small);

    if (error != EdsdkWrapper.EDS_ERR_OK)
    {
      throw new Exception("Failed to get prop desc for image quality: " + GetErrorMessage(error));
    }

des を使用していないことは知っていますが、それも理解したいと思います。set プロパティ メソッドでカメラ ビジー エラー メッセージ 129 が表示されて、どうもありがとうございます。

4

1 に答える 1

1

EdsGetPropertyDesc は、次の PropertyID を持つ可能な値のリストを (ID として) 取得するためにのみ使用できます。

  • kEdsPropID_AEModeSelect (カメラに物理モード スイッチがない場合のみ)
  • kEdsPropID_ISOSpeed
  • kEdsPropID_MeteringMode
  • kEdsPropID_Av
  • kEdsPropID_Tv
  • kEdsPropID_ExposureCompensation

返されたリストの値のみを使用して、特定の PropertyID を設定できます。このモードでは、このカメラの他のすべての可能な値は無効です。返される値が何を表しているかを知るには、完全なリストのドキュメントを参照してください。たとえば、カメラの最大 Tv 値は 1/4000 までしか設定できませんが、1/8000 までの値が定義されています。したがって、取得されたリストは 1/4000 までしか上がりません。

画質を得るために、あなたはすでに正しいことをしています。取得する出力値は、ImageQuality 列挙値のいずれかです。画質を設定するには、正しいコマンドを使用しますが、値が間違っています。ImageQuality 列挙値のいずれかでもある必要があります。

これらのコマンドとプロパティはすべてドキュメントで説明されています。

敬具

于 2014-04-14T13:43:10.070 に答える