Cinder-EDSDK
is a CinderBlock to interact with Canon cameras. See Canon's compatibility chart for a list of cameras supported in their EDSDK.
Image capture to memory or on-disk, camera keep-alive, simultaneous control of multiple cameras, Live View and camera connect and disconnect handling.
void CaptureApp::setup() {
CameraBrowser::instance()->connectAddedHandler(&CaptureApp::browserDidAddCamera, this);
CameraBrowser::instance()->start();
}
void CaptureApp::browserDidAddCamera(CameraRef camera) {
mCamera = camera;
mCamera->connectFileAddedHandler(&CaptureApp::didAddFile, this);
EdsError error = mCamera->requestOpenSession();
if (error == EDS_ERR_OK) {
mCamera->requestTakePicture();
}
}
void CaptureApp::didAddFile(CameraRef camera, CameraFileRef file) {
fs::path destinationFolderPath = expandPath(fs::path("~/Desktop/Captures"));
camera->requestDownloadFile(file, destinationFolderPath, [this](EdsError error, fs::path outputFilePath) {
if (error == EDS_ERR_OK) {
console() << "downloaded image to: " << outputFilePath << endl;
}
});
}
- Apply for EDSDK access from Canon USA or Canon Europa (serving Europe, Africa and The Middle East)
- Wait hours / days / weeks / months
- Download the EDSDK
- Unarchive
- Move the EDSDK folder into Cinder-EDSDK/lib
- Replace Cinder-EDSDK/lib/EDSDK/Framework/EDSDK.framework with EDSDK vX.Y.Z/EDSDK_64/EDSDK.framework to allow applications to be built
x86_64
NOTE - Due to a bug introduced in EDSDK v2.10, the CameraBrowser
will only call the camera removed handler for cameras with an open session.
- @hezhao for contributing Live View support
- Red Paper Heart's Cinder-CanonSdk
- v002-Camera-Live