A capture output for still image, Live Photo, and other photography workflows.
- iOS 10.0+
AVCapture provides a modern interface for capture workflows related to still photography. In addition to basic capture of still images, a photo output supports RAW-format capture, bracketed capture of multiple images, Live Photos, and wide-gamut color. You can output captured photos in a variety of formats and codecs, including RAW format DNG files, HEVC format HEIF files, and JPEG files.
To capture photos with the
AVCapture class, follow these steps:
AVCaptureobject. Use its properties to determine supported capture settings and to enable certain features (for example, whether to capture Live Photos).
Create and configure an
AVCaptureobject to choose features and settings for a specific capture (for example, whether to enable image stabilization or flash).
Capture an image by passing your photo settings object to the
capturemethod along with a delegate object implementing the
AVCaptureprotocol. The photo capture output then calls your delegate to notify you of significant events during the capture process.
Photo Capture Delegate
Some photo capture settings, such as the
flash property, include options for automatic behavior. For such settings, the photo output determines whether to use that feature at the moment of capture—you don’t know when requesting a capture whether the feature will be enabled when the capture completes. When the photo capture output calls your
AVCapture methods with information about the completed or in-progress capture, it also provides an
AVCapture object that details which automatic features have been set for that capture. The resolved settings object’s
unique property matches the
unique value of the
AVCapture object you used to request capture.
Enabling certain photo features (Live Photo capture and high resolution capture) requires a reconfiguration of the capture render pipeline. To opt into these features, set the
is properties before calling your
start method. Changing any of these properties while the session is running disrupts the capture render pipeline: Live Photo captures in progress end immediately, unfulfilled photo requests abort, and video preview temporarily freezes.
Using a photo capture output adds other requirements to your
A capture session cannot support both Live Photo capture and movie file output. If your capture session includes an
Movie File Output
Live Photo Capture Supported
false. (As an alternative, you can use the
AVCaptureclass to output video buffers at the same resolution as a simultaneous Live Photo capture.)
Video Data Output
A capture session cannot contain both an
AVCaptureobject and an
Still Image Output
AVCaptureclass includes all functionality of (and deprecates) the
Still Image Output
AVCapture class implicitly supports wide-gamut color photography. If the source
active value is
AVCapture, the capture output produces photos with wide color information (unless your
AVCapture object specifies an output format that does not support wide color).