---
title: AVCapturePhotoOutput
framework: avfoundation
role: symbol
role_heading: Class
path: avfoundation/avcapturephotooutput
---

# AVCapturePhotoOutput

A capture output for still image, Live Photos, and other photography workflows.

## Declaration

```swift
class AVCapturePhotoOutput
```

## Mentioned in

Configuring camera capture to collect a Portrait Effects matte Setting up a capture session Capturing and saving Live Photos Capturing thumbnail and preview images Capturing a bracketed photo sequence Capturing photos with depth Requesting authorization to capture and save media Saving captured photos

## Overview

Overview AVCapturePhotoOutput provides an 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 AVCapturePhotoOutput class, follow these steps: Create an AVCapturePhotoOutput object. Use its properties to determine supported capture settings and to enable certain features (for example, whether to capture Live Photos). Create and configure an AVCapturePhotoSettings object 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 capturePhoto(with:delegate:) method along with a delegate object implementing the AVCapturePhotoCaptureDelegate protocol. The photo capture output then calls your delegate to notify you of significant events during the capture process. Some photo capture settings, such as the flashMode 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 AVCapturePhotoCaptureDelegate methods with information about the completed or in-progress capture, it also provides an AVCaptureResolvedPhotoSettings object that details which automatic features are set for that capture. The resolved settings object’s uniqueID property matches the uniqueID value of the AVCapturePhotoSettings 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 isHighResolutionCaptureEnabled, isLivePhotoCaptureEnabled, and isLivePhotoAutoTrimmingEnabled properties before calling your AVCaptureSession object’s startRunning() 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 AVCaptureSession object: A capture session can’t support both Live Photo capture and movie file output. If your capture session includes an AVCaptureMovieFileOutput object, the isLivePhotoCaptureSupported property becomes false. (As an alternative, you can use the AVCaptureVideoDataOutput class to output video buffers at the same resolution as a simultaneous Live Photo capture). A capture session can’t contain both an AVCapturePhotoOutput object and an AVCaptureStillImageOutput object. The AVCapturePhotoOutput class includes all functionality of (and deprecates) the AVCaptureStillImageOutput class. The AVCapturePhotoOutput class implicitly supports wide-gamut color photography. If the source AVCaptureDevice object’s activeColorSpace value is AVCaptureColorSpace.P3_D65, the capture output produces photos with wide color information (unless your AVCapturePhotoSettings object specifies an output format that doesn’t support wide color).

## Topics

### Creating a photo output

- [init()](avfoundation/avcapturephotooutput/init().md)

### Capturing a photo

- [capturePhoto(with:delegate:)](avfoundation/avcapturephotooutput/capturephoto(with:delegate:).md)

### Managing responsive capture

- [captureReadiness](avfoundation/avcapturephotooutput/capturereadiness-swift.property.md)
- [AVCapturePhotoOutput.CaptureReadiness](avfoundation/avcapturephotooutput/capturereadiness-swift.enum.md)
- [isAutoDeferredPhotoDeliveryEnabled](avfoundation/avcapturephotooutput/isautodeferredphotodeliveryenabled.md)
- [isAutoDeferredPhotoDeliverySupported](avfoundation/avcapturephotooutput/isautodeferredphotodeliverysupported.md)
- [isFastCapturePrioritizationSupported](avfoundation/avcapturephotooutput/isfastcaptureprioritizationsupported.md)
- [isFastCapturePrioritizationEnabled](avfoundation/avcapturephotooutput/isfastcaptureprioritizationenabled.md)
- [isResponsiveCaptureSupported](avfoundation/avcapturephotooutput/isresponsivecapturesupported.md)
- [isResponsiveCaptureEnabled](avfoundation/avcapturephotooutput/isresponsivecaptureenabled.md)
- [isZeroShutterLagSupported](avfoundation/avcapturephotooutput/iszeroshutterlagsupported.md)
- [isZeroShutterLagEnabled](avfoundation/avcapturephotooutput/iszeroshutterlagenabled.md)

### Determining supported pixel formats

- [availablePhotoPixelFormatTypes](avfoundation/avcapturephotooutput/availablephotopixelformattypes-3ydgm.md)
- [availableRawPhotoPixelFormatTypes](avfoundation/avcapturephotooutput/availablerawphotopixelformattypes-9t9k5.md)
- [supportedPhotoPixelFormatTypes(for:)](avfoundation/avcapturephotooutput/supportedphotopixelformattypes(for:).md)
- [supportedRawPhotoPixelFormatTypes(for:)](avfoundation/avcapturephotooutput/supportedrawphotopixelformattypes(for:).md)
- [isAppleProRAWPixelFormat(_:)](avfoundation/avcapturephotooutput/isappleprorawpixelformat(_:).md)
- [isBayerRAWPixelFormat(_:)](avfoundation/avcapturephotooutput/isbayerrawpixelformat(_:).md)

### Determining supported codec types

- [availablePhotoCodecTypes](avfoundation/avcapturephotooutput/availablephotocodectypes.md)
- [supportedPhotoCodecTypes(for:)](avfoundation/avcapturephotooutput/supportedphotocodectypes(for:).md)

### Determining supported file types

- [availablePhotoFileTypes](avfoundation/avcapturephotooutput/availablephotofiletypes.md)
- [availableRawPhotoFileTypes](avfoundation/avcapturephotooutput/availablerawphotofiletypes.md)

### Suppressing the shutter sound

- [isShutterSoundSuppressionSupported](avfoundation/avcapturephotooutput/isshuttersoundsuppressionsupported.md)

### Configuring ProRAW support

- [isAppleProRAWSupported](avfoundation/avcapturephotooutput/isappleprorawsupported.md)
- [isAppleProRAWEnabled](avfoundation/avcapturephotooutput/isappleprorawenabled.md)

### Determining available settings

- [isContentAwareDistortionCorrectionSupported](avfoundation/avcapturephotooutput/iscontentawaredistortioncorrectionsupported.md)
- [isContentAwareDistortionCorrectionEnabled](avfoundation/avcapturephotooutput/iscontentawaredistortioncorrectionenabled.md)
- [isLensStabilizationDuringBracketedCaptureSupported](avfoundation/avcapturephotooutput/islensstabilizationduringbracketedcapturesupported.md)
- [maxBracketedCapturePhotoCount](avfoundation/avcapturephotooutput/maxbracketedcapturephotocount.md)
- [supportedFlashModes](avfoundation/avcapturephotooutput/supportedflashmodes-1n6nm.md)
- [isAutoRedEyeReductionSupported](avfoundation/avcapturephotooutput/isautoredeyereductionsupported.md)

### Monitoring the visible scene

- [isFlashScene](avfoundation/avcapturephotooutput/isflashscene.md)
- [photoSettingsForSceneMonitoring](avfoundation/avcapturephotooutput/photosettingsforscenemonitoring.md)

### Configuring high-resolution still capture

- [maxPhotoDimensions](avfoundation/avcapturephotooutput/maxphotodimensions.md)

### Configuring Live Photo capture

- [isLivePhotoCaptureSupported](avfoundation/avcapturephotooutput/islivephotocapturesupported.md)
- [isLivePhotoCaptureEnabled](avfoundation/avcapturephotooutput/islivephotocaptureenabled.md)
- [isLivePhotoCaptureSuspended](avfoundation/avcapturephotooutput/islivephotocapturesuspended.md)
- [preservesLivePhotoCaptureSuspendedOnSessionStop](avfoundation/avcapturephotooutput/preserveslivephotocapturesuspendedonsessionstop.md)
- [isLivePhotoAutoTrimmingEnabled](avfoundation/avcapturephotooutput/islivephotoautotrimmingenabled.md)
- [availableLivePhotoVideoCodecTypes](avfoundation/avcapturephotooutput/availablelivephotovideocodectypes.md)

### Configuring depth data capture

- [isDepthDataDeliverySupported](avfoundation/avcapturephotooutput/isdepthdatadeliverysupported.md)
- [isDepthDataDeliveryEnabled](avfoundation/avcapturephotooutput/isdepthdatadeliveryenabled.md)

### Configuring Portrait Effects matte capture

- [isPortraitEffectsMatteDeliveryEnabled](avfoundation/avcapturephotooutput/isportraiteffectsmattedeliveryenabled.md)
- [isPortraitEffectsMatteDeliverySupported](avfoundation/avcapturephotooutput/isportraiteffectsmattedeliverysupported.md)
- [portraitEffectsMatte](avfoundation/avcapturephoto/portraiteffectsmatte.md)

### Configuring constant color

- [isConstantColorSupported](avfoundation/avcapturephotooutput/isconstantcolorsupported.md)
- [isConstantColorEnabled](avfoundation/avcapturephotooutput/isconstantcolorenabled.md)

### Configuring orientation compensation

- [isCameraSensorOrientationCompensationSupported](avfoundation/avcapturephotooutput/iscamerasensororientationcompensationsupported.md)
- [isCameraSensorOrientationCompensationEnabled](avfoundation/avcapturephotooutput/iscamerasensororientationcompensationenabled.md)

### Configuring virtual device capture

- [isVirtualDeviceFusionSupported](avfoundation/avcapturephotooutput/isvirtualdevicefusionsupported.md)
- [isVirtualDeviceConstituentPhotoDeliverySupported](avfoundation/avcapturephotooutput/isvirtualdeviceconstituentphotodeliverysupported.md)
- [isVirtualDeviceConstituentPhotoDeliveryEnabled](avfoundation/avcapturephotooutput/isvirtualdeviceconstituentphotodeliveryenabled.md)

### Preparing for resource-intensive captures

- [preparedPhotoSettingsArray](avfoundation/avcapturephotooutput/preparedphotosettingsarray.md)
- [setPreparedPhotoSettingsArray(_:completionHandler:)](avfoundation/avcapturephotooutput/setpreparedphotosettingsarray(_:completionhandler:).md)

### Getting segmentation mattes

- [availableSemanticSegmentationMatteTypes](avfoundation/avcapturephotooutput/availablesemanticsegmentationmattetypes.md)
- [enabledSemanticSegmentationMatteTypes](avfoundation/avcapturephotooutput/enabledsemanticsegmentationmattetypes.md)

### Setting the capture prioritization

- [maxPhotoQualityPrioritization](avfoundation/avcapturephotooutput/maxphotoqualityprioritization.md)
- [AVCapturePhotoOutput.QualityPrioritization](avfoundation/avcapturephotooutput/qualityprioritization.md)

### Determining calibration data delivery support

- [isCameraCalibrationDataDeliverySupported](avfoundation/avcapturephotooutput/iscameracalibrationdatadeliverysupported.md)

### Deprecated

- [Deprecated symbols](avfoundation/avcapturephotooutput-deprecated-symbols.md)

### Instance properties

- [availableRawPhotoCodecTypes](avfoundation/avcapturephotooutput/availablerawphotocodectypes.md)

### Instance methods

- [supportedRawPhotoCodecTypes(forRawPhotoPixelFormatType:fileType:)](avfoundation/avcapturephotooutput/supportedrawphotocodectypes(forrawphotopixelformattype:filetype:).md)

## Relationships

### Inherits From

- [AVCaptureOutput](avfoundation/avcaptureoutput.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Photo capture

- [Capturing consistent color images](avfoundation/capturing-consistent-color-images.md)
- [Capturing still and Live Photos](avfoundation/capturing-still-and-live-photos.md)
- [Capturing photos in RAW and Apple ProRAW formats](avfoundation/capturing-photos-in-raw-and-apple-proraw-formats.md)
- [Supporting Continuity Camera in Your Mac App](appkit/supporting-continuity-camera-in-your-mac-app.md)
- [AVCapturePhoto](avfoundation/avcapturephoto.md)
- [AVCaptureDeferredPhotoProxy](avfoundation/avcapturedeferredphotoproxy.md)
- [AVCapturePhotoCaptureDelegate](avfoundation/avcapturephotocapturedelegate.md)
- [AVCapturePhotoOutputReadinessCoordinator](avfoundation/avcapturephotooutputreadinesscoordinator.md)
- [AVCapturePhotoOutputReadinessCoordinatorDelegate](avfoundation/avcapturephotooutputreadinesscoordinatordelegate.md)
- [AVCaptureStillImageOutput](avfoundation/avcapturestillimageoutput.md)
