libgphoto2 bindings with an interface that strives to be idiomatic
Project description
Python bindings for libgphoto2 with an interface that strives to be idiomatic. In contrast to other bindings for Python, gphoto2-cffi hides most of the lower-level abstractions and reduces the API surface while still offering access to most of the library’s features.
import gphoto2cffi as gp
# List all attached cameras that are supported
cams = gp.list_cameras()
# Get a camera instance by specifying a USB bus and device number
my_cam = gp.Camera(bus=4, device=1)
# Get an instance for the first supported camera
my_cam = gp.Camera()
# or
my_cam = next(gp.list_cameras())
# Capture an image to the camera's RAM and get its data
imgdata = my_cam.capture()
# Grab a preview from the camera
previewdata = my_cam.get_preview()
# Get a list of files on the camera
files = tuple(my_cam.list_all_files())
# Iterate over a file's content
with open("image.jpg", "wb") as fp:
for chunk in my_cam.files[0].iter_data():
fp.write(chunk)
# Get a configuration value
image_quality = my_cam.config['capturesettings']['imagequality'].value
# Set a configuration value
my_cam.config['capturesettings']['imagequality'].set("JPEG Fine")
Python 2.7 and 3.4 or newer (CPython and PyPy) are supported.
Requirements
libgphoto2 with development headers
A working C compiler
cffi
Installation
From Source:
$ pip install git+https://github.com/jbaiter/gphoto2-cffi.git
Similar projects
piggyphoto: Uses ctypes
python-gphoto2: Uses SWIG