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

# AVCapturePhotoBracketSettings

A specification of the features and settings to use for a photo capture request that captures multiple images with varied settings.

```
class AVCapturePhotoBracketSettings
```

## Overview

To take a bracketed capture, you create and configure an [`AVCapturePhotoBracketSettings`](/documentation/AVFoundation/AVCapturePhotoBracketSettings) object, using [`AVCaptureBracketedStillImageSettings`](/documentation/AVFoundation/AVCaptureBracketedStillImageSettings) objects to describe the individual captures in the bracket, and then pass it to the [`AVCapturePhotoOutput`](/documentation/AVFoundation/AVCapturePhotoOutput) [`capturePhoto(with:delegate:)`](/documentation/AVFoundation/AVCapturePhotoOutput/capturePhoto(with:delegate:)) method.

To request a bracketed capture, follow these steps:

1. Create an array of [`AVCaptureBracketedStillImageSettings`](/documentation/AVFoundation/AVCaptureBracketedStillImageSettings) objects describing the number of images to capture in the bracket and the variations on capture settings between them.
2. Create a bracketed photo settings object with the [`init(rawPixelFormatType:processedFormat:bracketedSettings:)`](/documentation/AVFoundation/AVCapturePhotoBracketSettings/init(rawPixelFormatType:processedFormat:bracketedSettings:)) initializer, passing the array of bracketed still image settings, along with the processed format (such as JPEG) or RAW format to capture images in.
3. Configure other settings to share across all images in the bracket, such as the [`isLensStabilizationEnabled`](/documentation/AVFoundation/AVCapturePhotoBracketSettings/isLensStabilizationEnabled) property and certain inherited properties.

> Important:
> Bracketed capture supports only the ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCapturePhotoSettings/isHighResolutionPhotoEnabled`` and ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCapturePhotoSettings/previewPhotoFormat`` settings defined by the ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCapturePhotoSettings`` superclass. Bracketed capture does not support flash, auto stabilization, or Live Photos—attempting to set any of the corresponding properties raises an exception.

1. Initiate capture by passing the bracketed photo settings object to your photo output’s [`capturePhoto(with:delegate:)`](/documentation/AVFoundation/AVCapturePhotoOutput/capturePhoto(with:delegate:)) method, along with a delegate object to receive messages about the progress and results of the capture.

> Tip:
> Capturing a multiple-image bracket may require allocation of additional resources. See the ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCapturePhotoOutput/setPreparedPhotoSettingsArray(_:completionHandler:)`` method.

1. The photo output calls your delegate’s [`photoOutput(_:didFinishProcessingPhoto:previewPhoto:resolvedSettings:bracketSettings:error:)`](/documentation/AVFoundation/AVCapturePhotoCaptureDelegate/photoOutput(_:didFinishProcessingPhoto:previewPhoto:resolvedSettings:bracketSettings:error:)) or [`photoOutput(_:didFinishProcessingRawPhoto:previewPhoto:resolvedSettings:bracketSettings:error:)`](/documentation/AVFoundation/AVCapturePhotoCaptureDelegate/photoOutput(_:didFinishProcessingRawPhoto:previewPhoto:resolvedSettings:bracketSettings:error:)) methods many times corresponding to the number of captures in the bracket. Each call provides the [`AVCaptureBracketedStillImageSettings`](/documentation/AVFoundation/AVCaptureBracketedStillImageSettings) object indicating which capture in the bracket the captured image corresponds to.

The following code example illustrates capturing a bracket of three RAW images with varying exposure value settings.

Listing 1. Capturing a Multi-Exposure Bracket

```swift
func captureRAWAutoExposureBracket() {
    guard myCapturePhotoOutput.maxBracketedCapturePhotoCount >= 3 else { return }
    
    // Specify a 3-shot bracket, where exposure compensation varies between each shot.
    let makeSettings = AVCaptureAutoExposureBracketedStillImageSettings.autoExposureSettingsWithExposureTargetBias
    let bracketedStillImageSettings = [-2, 0, 2].map { makeSettings(Float($0))! }
    let rawFormat = myCapturePhotoOutput.availableRawPhotoCVPixelFormatTypes.first!.unsignedIntValue as OSType
    
    let settings = AVCapturePhotoBracketSettings(format: nil, rawPixelFormatType: rawFormat, bracketedSettings: bracketedStillImageSettings)
    settings.lensStabilizationEnabled = myCapturePhotoOutput.lensStabilizationDuringBracketedCaptureSupported
    
    myCapturePhotoOutput.capturePhotoWithSettings(settings, delegate: self)
    // Three RAW photos will be delivered.
}
```

## Topics

### Creating a bracket settings object

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

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

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

Creates a photo settings object for the specified bracket of captures, in the specified formats.

### Working with bracketed settings

[`bracketedSettings`](/documentation/AVFoundation/AVCapturePhotoBracketSettings/bracketedSettings)

An array describing the number of and settings for images to produce in a bracketed capture.

[`isLensStabilizationEnabled`](/documentation/AVFoundation/AVCapturePhotoBracketSettings/isLensStabilizationEnabled)

A Boolean value that specifies whether to stabilize the lens for the duration of the bracketed capture.

### Bracketed settings types

[`AVCaptureAutoExposureBracketedStillImageSettings`](/documentation/AVFoundation/AVCaptureAutoExposureBracketedStillImageSettings)

A configuration for defining bracketed photo captures in terms of bias relative to automatic exposure.

[`AVCaptureManualExposureBracketedStillImageSettings`](/documentation/AVFoundation/AVCaptureManualExposureBracketedStillImageSettings)

A configuration for defining bracketed photo captures in terms of specific exposure and ISO values.

[`AVCaptureBracketedStillImageSettings`](/documentation/AVFoundation/AVCaptureBracketedStillImageSettings)

The abstract superclass for bracketed photo capture settings.



---

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)