<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 14.0.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 17.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVCapturePhotoSettings",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVCapturePhotoSettings"
  },
  "title" : "AVCapturePhotoSettings"
}
-->

# AVCapturePhotoSettings

A specification of the features and settings to use for a single photo capture request.

```
class AVCapturePhotoSettings
```

## Overview

To take a photo, you create and configure a [`AVCapturePhotoSettings`](/documentation/AVFoundation/AVCapturePhotoSettings) object, then pass it to the [`AVCapturePhotoOutput`](/documentation/AVFoundation/AVCapturePhotoOutput) [`capturePhoto(with:delegate:)`](/documentation/AVFoundation/AVCapturePhotoOutput/capturePhoto(with:delegate:)) method.

A [`AVCapturePhotoSettings`](/documentation/AVFoundation/AVCapturePhotoSettings) instance can include any combination of settings, regardless of whether that combination is valid for a given capture session. When you initiate a capture by passing a photo settings object to the [`capturePhoto(with:delegate:)`](/documentation/AVFoundation/AVCapturePhotoOutput/capturePhoto(with:delegate:)) method, the photo capture output validates your settings to ensure deterministic behavior. For example, the [`flashMode`](/documentation/AVFoundation/AVCapturePhotoSettings/flashMode) setting must specify a value that’s present in the photo output’s [`supportedFlashModes`](/documentation/AVFoundation/AVCapturePhotoOutput/supportedFlashModes-4u69s) array. For detailed validation rules, see each property description below.

> Important:
> You can’t reuse a ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCapturePhotoSettings`` instance for multiple captures. Calling the ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCapturePhotoOutput/capturePhoto(with:delegate:)`` method throws an exception (<doc://com.apple.documentation/documentation/Foundation/NSExceptionName/invalidArgumentException>) if the `settings` object’s ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCapturePhotoSettings/uniqueID`` value matches that of any previously used settings object.
> 
> To reuse a specific combination of settings, use the ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCapturePhotoSettings/init(from:)`` initializer to create a new, unique ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCapturePhotoSettings`` instance from an existing photo settings object.

## Topics

### Creating photo settings

[`photoSettings`](/documentation/AVFoundation/AVCapturePhotoSettings/photoSettings)

Creates a photo settings object with default settings.

[`init(format:)`](/documentation/AVFoundation/AVCapturePhotoSettings/init(format:))

Creates a photo settings object with the specified output format.

[`init(rawPixelFormatType:)`](/documentation/AVFoundation/AVCapturePhotoSettings/init(rawPixelFormatType:))

Creates a photo settings object for RAW-format-only capture with the specified pixel format.

[`init(rawPixelFormatType:processedFormat:)`](/documentation/AVFoundation/AVCapturePhotoSettings/init(rawPixelFormatType:processedFormat:))

Creates a photo settings object for capture in both RAW format and a processed format.

[`init(rawPixelFormatType:rawFileType:processedFormat:processedFileType:)`](/documentation/AVFoundation/AVCapturePhotoSettings/init(rawPixelFormatType:rawFileType:processedFormat:processedFileType:))

Creates a photo settings object for capture in both RAW format and a processed format with the specified output file types.

[`init(from:)`](/documentation/AVFoundation/AVCapturePhotoSettings/init(from:))

Creates a unique photo settings object, copying all settings values from the specified photo settings object.

### Inspecting settings

[`uniqueID`](/documentation/AVFoundation/AVCapturePhotoSettings/uniqueID)

A unique identifier for this photo settings instance.

[`format`](/documentation/AVFoundation/AVCapturePhotoSettings/format)

A dictionary describing the processed format (for example, JPEG) to deliver captured photos in.

[`processedFileType`](/documentation/AVFoundation/AVCapturePhotoSettings/processedFileType)

The container file format for eventual output of the processed image.

[`rawFileType`](/documentation/AVFoundation/AVCapturePhotoSettings/rawFileType)

The container file format for eventual output of the RAW image.

[`rawPhotoPixelFormatType`](/documentation/AVFoundation/AVCapturePhotoSettings/rawPhotoPixelFormatType)

An identifier for the Bayer RAW pixel format to deliver captured RAW photos in.

### Configuring photo settings

[`flashMode`](/documentation/AVFoundation/AVCapturePhotoSettings/flashMode)

A setting for whether to fire the flash when capturing photos.

[`isAutoRedEyeReductionEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isAutoRedEyeReductionEnabled)

A Boolean value that indicates whether to use auto red-eye reduction on flash captures.

[`maxPhotoDimensions`](/documentation/AVFoundation/AVCapturePhotoSettings/maxPhotoDimensions)

The maximum resolution of the photo to capture.

[`photoQualityPrioritization`](/documentation/AVFoundation/AVCapturePhotoSettings/photoQualityPrioritization)

A setting that indicates how to prioritize photo quality against speed of photo delivery.

[`isCameraCalibrationDataDeliveryEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isCameraCalibrationDataDeliveryEnabled)

A Boolean value that determines whether a dual photo capture also delivers camera calibration data.

[`isAutoContentAwareDistortionCorrectionEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isAutoContentAwareDistortionCorrectionEnabled)

A Boolean value that specifies whether the photo output, at its discretion, uses content-aware distortion correction on this photo request.

[`isAutoVirtualDeviceFusionEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isAutoVirtualDeviceFusionEnabled)

A Boolean value that specifies whether to use automatic virtual-device image fusion.

[`virtualDeviceConstituentPhotoDeliveryEnabledDevices`](/documentation/AVFoundation/AVCapturePhotoSettings/virtualDeviceConstituentPhotoDeliveryEnabledDevices)

The constituent devices for which the virtual device should deliver photos.

[`isDualCameraDualPhotoDeliveryEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isDualCameraDualPhotoDeliveryEnabled)

A Boolean value that determines whether a dual camera device delivers images from both cameras.

[`isAutoDualCameraFusionEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isAutoDualCameraFusionEnabled)

A Boolean value that specifies whether captures automatically combine data from a dual camera device.

[`isAutoStillImageStabilizationEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isAutoStillImageStabilizationEnabled)

A Boolean value that specifies whether captures use automatic image stabilization.

[`isHighResolutionPhotoEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isHighResolutionPhotoEnabled)

A Boolean value that specifies whether to capture still images at the highest resolution supported by the active device and format.

### Suppressing the shutter sound

[`isShutterSoundSuppressionEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isShutterSoundSuppressionEnabled)

A Boolean value that indicates whether to suppress the built-in shutter sound when capturing a photo.

### Enabling preview and thumbnail delivery

[`previewPhotoFormat`](/documentation/AVFoundation/AVCapturePhotoSettings/previewPhotoFormat)

A dictionary describing the format for delivery of preview-sized images alongside the main photo.

[`availablePreviewPhotoPixelFormatTypes`](/documentation/AVFoundation/AVCapturePhotoSettings/availablePreviewPhotoPixelFormatTypes-30d9)

An array of available of pixel format types available to specify a preview photo format.

[`availablePreviewPhotoPixelFormatTypes`](/documentation/AVFoundation/AVCapturePhotoSettings/availablePreviewPhotoPixelFormatTypes-2vfwu)

An array of pixel format types compatible with the photo settings for delivery of preview-sized images.

[`embeddedThumbnailPhotoFormat`](/documentation/AVFoundation/AVCapturePhotoSettings/embeddedThumbnailPhotoFormat)

A dictionary describing the format for delivery of thumbnail images embedded in photo file output.

[`availableRawEmbeddedThumbnailPhotoCodecTypes`](/documentation/AVFoundation/AVCapturePhotoSettings/availableRawEmbeddedThumbnailPhotoCodecTypes)

An array of video codec types compatible with the photo settings for embedding raw thumbnail images in photo file output.

[`rawEmbeddedThumbnailPhotoFormat`](/documentation/AVFoundation/AVCapturePhotoSettings/rawEmbeddedThumbnailPhotoFormat)

A dictionary describing the format for delivery of raw thumbnail images embedded in photo file output.

[`availableEmbeddedThumbnailPhotoCodecTypes`](/documentation/AVFoundation/AVCapturePhotoSettings/availableEmbeddedThumbnailPhotoCodecTypes)

An array of video codec types compatible with the photo settings for embedding thumbnail images in photo file output.

### Configuring Live Photo settings

[`livePhotoMovieFileURL`](/documentation/AVFoundation/AVCapturePhotoSettings/livePhotoMovieFileURL)

A URL at which to write Live Photo movie output.

[`livePhotoMovieMetadata`](/documentation/AVFoundation/AVCapturePhotoSettings/livePhotoMovieMetadata)

A dictionary of metadata to include in the Live Photo movie file.

[`livePhotoVideoCodecType`](/documentation/AVFoundation/AVCapturePhotoSettings/livePhotoVideoCodecType)

The video codec to use for encoding the movie portion of Live Photo output.

### Configuring constant color

[`isConstantColorEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isConstantColorEnabled)

A Boolean value that indicates whether to capture the photo with constant color.

[`isConstantColorFallbackPhotoDeliveryEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isConstantColorFallbackPhotoDeliveryEnabled)

A Boolean value that indicates whether to deliver a fallback photo when taking a constant color capture.

### Capturing depth data

[`isDepthDataDeliveryEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isDepthDataDeliveryEnabled)

A Boolean value that determines whether the photo output captures depth data along with the photo.

[`embedsDepthDataInPhoto`](/documentation/AVFoundation/AVCapturePhotoSettings/embedsDepthDataInPhoto)

A Boolean value that determines whether any depth data captured with the photo is included when generating output file data.

[`isDepthDataFiltered`](/documentation/AVFoundation/AVCapturePhotoSettings/isDepthDataFiltered)

A Boolean value that determines whether to smooth noise and fill in missing values in depth data output.

### Capturing Portrait Effects matte

[`isPortraitEffectsMatteDeliveryEnabled`](/documentation/AVFoundation/AVCapturePhotoSettings/isPortraitEffectsMatteDeliveryEnabled)

Specifies whether a portrait effects matte should be captured along with the photo.

[`embedsPortraitEffectsMatteInPhoto`](/documentation/AVFoundation/AVCapturePhotoSettings/embedsPortraitEffectsMatteInPhoto)

Specifies whether the portrait effects matte captured with ths photo should be written to the photo’s file structure.

### Capturing semantic segmentation mattes

[`embedsSemanticSegmentationMattesInPhoto`](/documentation/AVFoundation/AVCapturePhotoSettings/embedsSemanticSegmentationMattesInPhoto)

A Boolean value that specifies whether to write the enabled semantic segmentation matte types captured with this photo to the photo’s file structure.

[`enabledSemanticSegmentationMatteTypes`](/documentation/AVFoundation/AVCapturePhotoSettings/enabledSemanticSegmentationMatteTypes)

An array of semantic segmentation matte types that the photo render pipeline can deliver.

### Embedding metadata

[`metadata`](/documentation/AVFoundation/AVCapturePhotoSettings/metadata)

A dictionary of metadata keys and values to embed in photo file output.

### Instance properties

[`rawFileFormat`](/documentation/AVFoundation/AVCapturePhotoSettings/rawFileFormat)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)