With your digital camera, a laptop and a printer, you can have your own DIY low-cost photobooth.
Create your own custom overlay. Make sure it is a 4x6 crop factor, save it as a 24-bit transparent PNG. See public/images/overlay.png
for an example.
It is recommended that this overlay image is 2400x1600px large.
When you are done, save your overlay resource into public/images/overlay.png
.
By default, shmile does not try to print to a printer. However, should you decide to use one (I personally use a Canon CP770), it should be relatively simple to set up.
When booting your server, be sure to supply a PRINTER=true
environment variable. For example:
$ PRINTER=true coffee app.coffee
The server is responsible for controlling the camera, and serving the Web interface that users will see. Here we assume that you already have Homebrew installed and running on your Mac.
$ brew install node
Note that shmile
officially supports Node v0.12
, 4.2
, and 5.0
.
$ brew install imagemagick
gphoto2
$ brew install gphoto2
$ npm install -g gulp coffee-script
$ npm install -g bower
Go to project root. We assume that you've checked out this repo into /path/to/shmile
.
$ cd /path/to/shmile
$ npm install
$ bower install
$ coffee app.coffee
The server should begin running.
PRINTER=true
causes shmile to queue up a print job to your default
printer as soon as a photo session is complete.STUB_CAMERA=true
allows you to not use the camera control interface.
You should only need this feature when you are actually developing on
shmile.This is a Web browser that displays the camera control interface, and shows the visitor the real-time creation of the image. For simple deployments, this can simply be on the same computer that is running the server.
localhost:3000
in a evergreen Web browser (Chrome and Safari latest recommended).<computer-name>:3000
to the Address Bar. Tap the Go To
button in the Safari bar, and save the app to your home screen (see: http://www.apple.com/iphone/tips/).This is a Web browser instance that displays a view of all the generated images taken so far.
http://localhost:3000/gallery
(or <server_address>:3000/gallery
if you're connecting over a network)Note: this is currently buggy and will not work if you don't have any images taken yet. Visit this view when a few photos have been generated.
PTPCamera
daemon boots up whenever you plug in your camera. Running a killall PTPCamera
will do the trick. Shmile automatically runs this command for you when you boot up.Submit a PR to this repository. Make sure you explain what your PR is doing and appropriate test coverage is in place.
If you're looking for the source to the JS frontend, you'll find it at the shmile-ui repository.
When developing on shmile, it helps to decouple the camera
subsystem from the UI so you can test end-to-end without the camera. To this end, you can supply a STUB_CAMERA=true
environment variable. A stub camera will substitute for the gphoto2 backend.
http://www.opensource.org/licenses/GPL-2.0