gPhoto is a set of software applications[citation needed] and libraries for use in digital photography. gPhoto supports not just retrieving of images from camera devices, but also upload and remote controlled configuration and capture, depending on whether the camera supports those features.
gPhoto has support for the Picture Transfer Protocol (PTP) and will also connect to devices that use the Media Transfer Protocol (MTP). Many cameras are not supported by gPhoto, but have support for the USB mass storage device class, which is well-supported under Linux. gPhoto intentionally does not implement support for USB mass storage cameras, as this is already implemented in-kernel.
gPhoto supports camera tethering control, preview, viewfinder in PTP or camera specific protocols on numerous cameras.
Applications
gPhoto provides a library, libgphoto2, to allow for other frontends to be written for it, and a command-line interface. gtkam is the official GUI client for gPhoto. Other clients are the KDE program digiKam and the GNOME program Shotwell. GVfs uses libgphoto2 to expose on-camera photos to GNOME applications via a virtual filesystem.