今回は(英語)http://api.ricoh/docs を参考にしながら一通りの流れについてのまとめをメモ
カメラ接続
Docs : https://api.ricoh/docs/camera-usb-sdk-dotnet/connection/基本的にここにあるコード、でカメラ接続ができる。
DeviceInterface deviceInterface = DeviceInterface.USB;
List<CameraDevice> detectedCameraDevices = CameraDeviceDetector.Detect(deviceInterface);
CameraDevice cameraDevice = detectedCameraDevices.First();
Response response = cameraDevice.Connect(deviceInterface);
このとき、cameraDevice
インスタンスがカメラ本体と対応している。
このオブジェクトのメソッドの中に、「startCapture(画像を取らせる)」や「ライブビュー開始」といったものがある。
またメンバーには「Images」などの、画像のデータを保管している変数がある。
cameraDeviceのクラスの中身はhttps://api.ricoh/docs/camera-usb-sdk-dotnet/assets/img/Ricoh.CameraController.pngに記載されている
画像の撮影
Docs : https://api.ricoh/docs/camera-usb-sdk-dotnet/capture/ 撮影はCameraDevice.StartCapture()
で行う。
このメソッドが実行されると、カメラの撮影が行われ、接続されたカメラの中で撮影された画像の保存処理が始まる。
画像の保存
Docs : https://api.ricoh/docs/camera-usb-sdk-dotnet/image-handling/ 画像データは、cameraDevice.Images
に配列で保存されている。
最新の画像データはcameraDevice.Images[0]
になっている。
※カメラ内での画像の保存処理が終わっていない場合は前のものが入っている
これをimage.GetData()
メソッドを使用して、画像を保存する。
このとき、GetDataメソッドに、画像の保存先となるファイルパス(ファイル名を含む)を指定したFileStreamオブジェクトを渡す
using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)){
Response imageGetResponse = image.GetData(fs);
}