An openFrameworks addon for interfacing with Canon DSLR cameras.
- Photo taking
- Blocking or Async (using C++11
std::future
) - 8bit and 16bit
- Blocking or Async (using C++11
- Live view capture
- ISO / Aperture / Shutter speed settings (+ ofParameter support)
- Lens information (+ events when lens is changed)
- Stricter threading model
- Ability to call functions in different threads 'remotely' without instruction queues.
std::future
for async photo capture- Use it directly with your own threads, or use the
Simple
class to manage threads for you
- Backwards compatability with
ofxEdsdk::Camera
- openFrameworks 0.9.0 or later
- You must download the EDSDK from Canon (Canon Europe EDSDK download, Canon USA EDSDK download). Check the text files in
ofxCanon/libs
for example file layouts. - (Optional : ofxAddonLib if you're using Visual Studio)
This addon is tested with:
Commit #1b28a71
IDE / Platform | EDSDK v. | Camera | Machine | Success |
---|---|---|---|---|
VS2019 | 13.12.31 | EOS5DMkiii | x86, x64 | YES |
VS2017 | 13.12.10 | EOS7D | x86, x64 | YES |
VS2017 | 13.12.10 | EOS750D | x86, x64 | YES |
VS2017 | 13.12.10 | EOSM50 | x86, x64 | YES |
VS2015 | 3.5.0 | EOS100D | x86, x64 | YES |
VS2015 | 3.5.0 | EOS550D | x86, x64 | YES |
XCode | 3.5.0 | EOS100D | x86, x64 | YES |
XCode | 3.5.0 | EOS550D | x86, x64 | YES |
XCode | 3.9.0 | EOS1DX | x86, x64 | YES |
Note :
- More recent version of ofxCanon will break compatability with older versions of EDSDSK
- If you want to use earlier versions of EDSDK, then you will want to roll back to earlier versions of ofxCanon also (since there are breaking changes in the EDSDK API that we have to keep up to date with). I suggest that you check through the commit history back in time to the point where the version of EDSDK that you want to use is the top of the list (the same goes for earlier version of oF).
- Download the necessary libs from Canon (check the
libs/context_??.txt
file for your platform to see what files you need where)
- Use the Project Generator to add ofxCanon to a new or existing project
- Set your macOS Deployment target to be
10.8
or later
Optional : For 32-bit builds you can add the DPP.framework
to your project if you want to use the EDSDK (rather than FreeImage) to develop RAW images and recover metadata from images. Note : if you don't definitely know you that need this then don't worry about it.
Check instructions from ofxAddonLib or use the project generator.
This addon began as a rewrite of the fantastic ofxEdsdk by Kyle McDonald + adding some features (although some may be missing).
Compatability with ofxEdsdk is provided by the ofxCanon::Simple
class which has the same interface as ofxEdsdk::Camera
(i.e. all the method names are the same and it should act as a drop-in replacement if you need it).
Some users of ofxEdsdk (myself included) have experienced issues with ofxEdsdk, and this addon is intended as a way to circumvent those issues. However, if ofxEdsdk is working well for you, then great! I'd suggest to stick with it and come back if you encounter an issue :).