Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/reuterbal/photobooth
A flexible photobooth software
https://github.com/reuterbal/photobooth
gphoto2 gphoto2-cffi opencv photobooth pillow pyqt5 python qt5 raspberry-pi
Last synced: 5 days ago
JSON representation
A flexible photobooth software
- Host: GitHub
- URL: https://github.com/reuterbal/photobooth
- Owner: reuterbal
- License: agpl-3.0
- Created: 2015-05-01T12:11:00.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2022-02-20T14:47:19.000Z (over 2 years ago)
- Last Synced: 2024-08-02T14:08:51.213Z (3 months ago)
- Topics: gphoto2, gphoto2-cffi, opencv, photobooth, pillow, pyqt5, python, qt5, raspberry-pi
- Language: Python
- Homepage:
- Size: 10.1 MB
- Stars: 312
- Watchers: 44
- Forks: 158
- Open Issues: 106
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# photobooth
[![Buy me a coffee](https://www.buymeacoffee.com/assets/img/custom_images/black_img.png)](https://www.buymeacoffee.com/reuterbal)
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.
## Description
This is a Python application to build your own photobooth.### Features
* 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](https://doc.qt.io/qt-5/stylesheet-syntax.html)### Screenshots
Screenshots produced using `CameraDummy` that produces unicolor images.#### Theme _pastel_
#### Theme _dark_
### Technical specifications
* Many camera models supported, thanks to interfaces to [gPhoto2](http://www.gphoto.org/), [OpenCV](https://opencv.org/), [Raspberry Pi camera module](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera)
* Tested on Standard x86 hardware and [Raspberry Pi](https://raspberrypi.org/) 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](https://www.python.org/), [Pillow](https://pillow.readthedocs.io), and [Qt5](https://www.qt.io/developers/)### History
I started this project for my own wedding in 2015.
See [Version 0.1](https://github.com/reuterbal/photobooth/tree/v0.1) for the original version.
Github user [hackerb9](https://github.com/hackerb9/photobooth) 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](https://www.pygame.org) 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.## Installation and usage
### Hardware requirements
* 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](http://gphoto.org/proj/libgphoto2/support.php)), OpenCV (e.g., most standard webcams), or a Raspberry Pi Camera Module.
* Optional: External buttons and lamps (in combination with gpiozero-compatible hardware)### Installing and running the photobooth
See [installation instructions](INSTALL.md).
## Configuration and modifications
Default settings are stored in [`defaults.cfg`](photobooth/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.## Feedback and bugs
I appreciate any feedback or bug reports.
Please submit them via the [Issue tracker](https://github.com/reuterbal/photobooth/issues/new?template=bug_report.md) 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](https://github.com/reuterbal/photobooth/issues/new?template=success-story.md).
If you find this application useful, please consider [buying me a coffee](https://www.buymeacoffee.com/reuterbal).
## License
I provide this code under AGPL v3. See [LICENSE](https://github.com/reuterbal/photobooth/blob/master/LICENSE.txt).