A photo booth application in pure Python for the Raspberry Pi.
Project description
The pibooth project attempts to provide a photobooth application out-of-the-box in pure Python for Raspberry Pi. Have a look to the wiki to discover some realizations from GitHb users.
Requirements
The requirements listed below are the one used for the development of pibooth, but other configuration may work fine. All hardware buttons, lights and printer are optional, the application can be entirely controlled using a standard keyboard.
Hardware
1 Raspberry Pi 2 Model B (or higher)
1 Camera (Pi Camera v2.1 8 MP 1080p or any DSLR camera compatible with gPhoto2)
2 push buttons
4 LEDs
4 resistors of 100 Ohm
1 printer
Software
Python 3.5.3
RPi.GPIO 0.6.3
picamera 1.13
Pillow 4.0.0
pygame 1.9.3
gphoto2 1.8.0 ( libgphoto2 2.5.15 )
pycups 1.9.73 ( CUPS 2.2.1 )
Install
A brief description on how to set-up a Raspberry Pi to use this software.
Download latest Raspbian image and set-up an SD-card. You can follow these instructions .
Insert the SD-card into the Raspberry Pi and fire it up. Use the raspi-config tool that is shown automatically on the first boot to configure your system (e.g., expand partition, change hostname, password, enable SSH, configure to boot into GUI, etc.).
Reboot and open a terminal. Install the latest firmware version:
$ sudo rpi-update
Upgrade all installed software:
$ sudo apt-get update $ sudo apt-get upgrade
Optionally install gPhoto2 (required only for DSLR camera):
$ sudo wget raw.github.com/gonzalo/gphoto2-updater/master/gphoto2-updater.sh $ sudo chmod 755 gphoto2-updater.sh $ sudo ./gphoto2-updater.sh
Optionally install CUPS to handle printers (more instruction to add a new printer can be found here):
$ sudo apt-get install cups libcups2-dev
Install pibooth from the pypi repository:
$ sudo pip3 install pibooth
Run
Start the photobooth application using the command:
$ pibooth
All pictures taken are stored in the folder defined in [GENERAL][directory]. They are named YYYY-mm-dd-hh-mm-ss_pibooth.jpg which the time when first capture of the sequence was taken. A subfolder raw/YYYY-mm-dd-hh-mm-ss is created to store the corresponding raw captures.
You can display a basic help on application options by using the command:
$ pibooth --help
Commands
After the graphical interface is started, the following actions are available:
Action |
Keyboard key |
Physical button |
---|---|---|
Toggle Full screen |
Ctrl + F |
- |
Choose layout |
LEFT or RIGHT |
Button 1 or Button 2 |
Take pictures |
P |
Button 1 |
Export Printer/Cloud |
Ctrl + E |
Button 2 |
Quit |
ESC |
- |
States and lights management
The application follows the states sequence defined in the diagram below:
The states of the LED 1 and LED 2 are modified depending on the actions available for the user. The LED 3 is switched on when the application starts and the LED 4 is switched on during the preview and photo capture.
A word about capture effects
Image effects can be applied on the capture using the [PICTURE][effect] variable defined in the configuration.
[PICTURE]
# Effect applied on all captures
effect = film
Instead of one effect name, a list of names can be provided. In this case, the effects are applied sequentially on the captures sequence.
[PICTURE]
# Define a rolling sequence of effects. For each capture the corresponding effect is applied.
effect = ('film', 'cartoon', 'washedout', 'film')
Have a look to the predefined effects available depending on the camera used:
Final picture rendering
The pibooth application handle the rendering of the final picture using 2 variables defined in the configuration (see Configuration below):
[CAMERA][resolution] = (width, height) is the resolution of the captured picture in pixels. As explained in the configuration file, the preview size is directly dependent from this parameter.
[PICTURE][orientation] = auto/landscape/portrait is the orientation of the final picture (after concatenation of all captures). If the value is auto, the orientation is automatically chosen depending on the resolution.
Install developing version
If you want to use an unofficial version of the pibooth application, you need to work from a clone of this git repository. Replace the step 7. of the Install procedure above by the following actions:
clone from github
$ git clone https://github.com/werdeil/pibooth.git
go in the cloned directory
$ cd pibooth
install pibooth in editable mode
$ sudo pip3 install -e .
start the application exactly in the same way as installed from pypi. All modifications performed in the cloned repository are taken into account when the application starts.
Configuration
At the first run, a configuration file is generated in ~/.config/pibooth/pibooth.cfg which permits to configure the behavior of the application. The configuration can be easily edited using the command:
$ pibooth --config
The default configuration can be restored with the command (strongly recommended when upgrading pibooth):
$ pibooth --reset
See the default configuration file for further details.
Printer configuration
Here is the default configuration used in CUPS, this may depend on the printer used:
Options |
Value |
---|---|
Media Size |
10cm x 15cm |
Color Model |
CMYK |
Media Type |
Glossy Photo Paper |
Resolution |
Automatic |
2-Sided Printing |
Off |
Shrink page … |
Shrink (print the whole page) |
Circuit diagram
Here is the diagram for hardware connections. Please refer to the configuration to know the default pins used.
Credits
Icons from the Noun Project
Thumb up by Symbolon
Polaroid by icon 54
Cat by Внталий Плут
Up hand drawn arrow by Kid A
Cameraman and Friends Posing For Camera by Gan Khoon Lay
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file pibooth-1.0.3-py2.py3-none-any.whl
.
File metadata
- Download URL: pibooth-1.0.3-py2.py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/38.5.1 requests-toolbelt/0.8.0 tqdm/4.19.4 CPython/2.7.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0dd972fdaf836a41268dc12ee066337c5fd3970605ff39518518c21c6514afe |
|
MD5 | 4edd21f63f99a452745fcb3cfa04314b |
|
BLAKE2b-256 | 2e2dafad1a38a1234dc530fbc6e154e980cefa3bae3085c787e5ac49355f577a |