1

eos canon カメラを PC に接続しました
。リモートで写真を撮ったり、画像を PC にダウンロードしたりできるアプリケーションがあります。

しかし、カメラからSDカードを取り外すと、バッファからPCに画像をダウンロードできません

// オブジェクトイベントコールバックを登録する

err = EDSDK.EdsSetObjectEventHandler(obj.camdevice, EDSDK.ObjectEvent_All, objectEventHandler, new IntPtr(0));
              if (err != EDSDK.EDS_ERR_OK)
                 Debug.WriteLine("Error registering object event handler");

///

public uint objectEventHandler(uint inEvent, IntPtr inRef, IntPtr inContext)
        {
            switch(inEvent)
            {

                case EDSDK.ObjectEvent_DirItemCreated:

                    this.getCapturedItem(inRef);

                    Debug.WriteLine("dir item created");

                    break;
                case EDSDK.ObjectEvent_DirItemRequestTransfer:
                    this.getCapturedItem(inRef);
                    Debug.WriteLine("file transfer request event");
                    break;

                default:
                    Debug.WriteLine(String.Format("ObjectEventHandler: event {0}", inEvent));
                    break;
            }
            return 0;
        }

誰でも私を助けることができる、なぜこのイベントが呼び出されないのか、

または、カメラにSdカードを持たずに、バッファからPCに画像をダウンロードする方法

ありがとう

4

3 に答える 3

2

昨日私がしたのと同じ問題に遭遇したことでしょう。カメラは後でダウンロードするために画像を保存しようとしましたが、保存するメモリ カードが見つからず、すぐに画像を破棄してしまいました。

コールバックを起動するには、カメラの初期化ルーチン中のある時点で PC に画像を保存するようにカメラを設定する必要があります (kEdsSaveTo_Host)。C++ では、次のように機能しました。

    EdsInt32 saveTarget = kEdsSaveTo_Host;
    err = EdsSetPropertyData( _camera, kEdsPropID_SaveTo, 0, 4, &saveTarget );

おそらく、これには IntPtr を作成する必要があります。少なくとも、このスレッドで Dmitriy Prozorovskiy が (特定のakadunnoによって促されて)実行したことはこれです。

于 2011-07-19T10:27:07.263 に答える
0

SDK (私が知る限り) は、カメラのファイル システム (つまり、SD カード) で作成されるオブジェクトの形で写真撮影イベントのみを公開します。バッファからキャプチャするのに慣れている方法はありません。オンボードメモリが少量しかない環境では、揮発性メモリをクリアに保ち、写真を撮り続けることが重要であるため、これはある意味で理にかなっています。バッファが不揮発性メモリにフラッシュされると、それらのバイトを操作できるようになります。制限、私は知っていますが、それが何であるかです。

于 2010-09-26T18:00:05.377 に答える