A flexible Photobooth software.
It supports many different camera models, the appearance can be adapted to your likings, and it runs on many different hardware setups.
This is a Python application to build your own photobooth.
- Capture a single or multiple pictures and assemble them in an m-by-n grid layout
- Live preview during countdown
- Store assembled pictures (and optionally the individual shots)
- Printing of captured pictures (via Qt printing module or pycups)
- Highly customizable via settings menu inside the graphical user interface
- Custom background for assembled pictures
- Ability to skip single pictures in the m-by-n grid (e.g., to include a logo in the background image)
- Support for external buttons and lamps via GPIO interface
- Rudimentary WebDAV upload functionality (saves pictures to WebDAV storage) and mailer feature (mails pictures to a fixed email address)
- Theming support using Qt stylesheets
Screenshots produced using CameraDummy
that produces unicolor images.
- Many camera models supported, thanks to interfaces to gPhoto2, OpenCV, Raspberry Pi camera module
- Tested on Standard x86 hardware and Raspberry Pi models 1B+, 2B, 3B, and 3B+
- Flexible, modular design: Easy to add features or customize the appearance
- Multi-threaded for responsive GUI and fast processing
- Based on Python 3, Pillow, and Qt5
I started this project for my own wedding in 2015. See Version 0.1 for the original version. Github user hackerb9 forked this version and added a print functionality. However, I was not happy with the original software design and the limited options provided by the previously used pygame GUI library and thus abandoned the original version. Since then it underwent a complete rewrite, with vastly improved performance and a much more modular and mature software design.
- Some computer/SoC that is able to run Python 3.5+ as well as any of the supported camera libraries
- Camera supported by gPhoto 2 (see compatibility list), OpenCV (e.g., most standard webcams), or a Raspberry Pi Camera Module.
- Optional: External buttons and lamps (in combination with gpiozero-compatible hardware)
See installation instructions.
Default settings are stored in defaults.cfg
and can either be changed in the graphical user interface or by creating a file photobooth.cfg
in the top folder and overwriting your settings there.
The software design is very modular. Feel free to add new postprocessing components, a GUI based on some other library, etc.
I appreciate any feedback or bug reports.
Please submit them via the Issue tracker and always include your photobooth.log
file (is created automatically in the top folder) and a description of your hardware and software setup.
I am also happy to hear any success stories! Feel free to submit them here.
If you find this application useful, please consider buying me a coffee.
I provide this code under AGPL v3. See LICENSE.