Node.js wrapper for libgphoto2
The included test application currently allows you to
- receive a live preview of your camera (if supported). Tested with an EOS 550D on a 2010 iMac at ~17 fps using Chrome (Safari doesn't work and FF is slow as hell).
- query a list of available configuration options
- query the values of specific configuration options
The test suite can be run using
npm test. There's also a small test application in
test/test-server.coffee which runs on
http://localhost:1337 and allows to change camera settings and to
- Node.js ~0.10.0
- NPM ~1.2.15
- libgphoto2 ~2.5.x - via
brew install libgphoto2,
apt-get install libgphoto2-2-devor download and build from http://www.gphoto.org/proj/libgphoto2/
- pkg-config | dpkg (used for dependency checking)
- clang compiler
After installing the dependencies, just install using:
npm install gphoto2
If it fails, please thoroughly check the output - link errors usually indicate missing dependencies. Also, the script tries to detect wether libgphoto2 is correctly installed - if this check fails although you properly installed it, please report :)
This example only shows how to achieve certain tasks, it's not meant to be executed without any asynchronous control flow logic.
var gphoto2 = require'gphoto2';var GPhoto = ;var fs = require'fs';// List cameras / assign list item to variable to use below optionsGPhotolistif listlength === 0 return;var camera = list0;console.log'Found' cameramodel;// get configuration treecameragetConfigconsole.logsettings;;// Set configuration valuescamerasetConfigValue'capturetarget' 1//...;// Take picture with camera object obtained from list()cameratakePicturedownload: truefswriteFileSync__dirname + '/picture.jpg' data;;// Take picture without downloading immediatelycameratakePicturedownload: falseconsole.logpath;;// Take picture and download it to filesystemcameratakePicturetargetPath: '/tmp/foo.XXXXXX'fsrenameSynctmpname __dirname + '/picture.jpg';;// Download a picture from cameracameradownloadPicturecameraPath: '/store_00020001/DCIM/100CANON/IMG_1231.JPG'targetPath: '/tmp/foo.XXXXXX'fsrenameSynctmpname __dirname + '/picture.jpg';;// Get preview picture (from AF Sensor, fails silently if unsupported)cameratakePicturepreview: truetargetPath: '/tmp/foo.XXXXXX'fsrenameSynctmpname __dirname + '/picture.jpg';;;
This project uses Semantic versioning.