<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.13.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PhotoKit",
  "identifier" : "/documentation/Photos/PHImageManager",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Photos"
    ],
    "preciseIdentifier" : "c:objc(cs)PHImageManager"
  },
  "title" : "PHImageManager"
}
-->

# PHImageManager

An object that facilitates retrieving or generating preview thumbnails and asset data.

```
class PHImageManager
```

## Overview

Use these methods to fetch full-size photo assets or thumbnail images, or to retrieve AVFoundation objects for playing, exporting, and manipulating video assets.

To load image or video data:

1. Use the [`PHAsset`](/documentation/Photos/PHAsset) class to fetch the asset you’re interested in.
2. Call the [`default()`](/documentation/Photos/PHImageManager/default()) method to retrieve the shared image manager object.
3. Use one of the methods listed in the Requesting groups below to load the asset’s image or video data.

The image manager caches the asset images and data it provides, so later requests for the same assets with similar parameters will return results more quickly.

If you need to load image data for many assets together, use the [`PHCachingImageManager`](/documentation/Photos/PHCachingImageManager) class to “preheat” the cache by loading images you expect to need soon. For example, when populating a collection view with photo asset thumbnails, you can cache images ahead of the current scroll position.

## Topics

### Getting the Image Manager

[`default()`](/documentation/Photos/PHImageManager/default())

Returns the shared image manager object.

### Requesting Images

[`requestImage(for:targetSize:contentMode:options:resultHandler:)`](/documentation/Photos/PHImageManager/requestImage(for:targetSize:contentMode:options:resultHandler:))

Requests an image representation for the specified asset.

[`requestImageDataAndOrientation(for:options:resultHandler:)`](/documentation/Photos/PHImageManager/requestImageDataAndOrientation(for:options:resultHandler:))

Requests the largest represented image as data bytes and EXIF orientation for the specified asset.

[`PHImageManagerMaximumSize`](/documentation/Photos/PHImageManagerMaximumSize)

A special value for requesting original image data or the largest rendered image available. .

[`requestImageDataForAsset:options:resultHandler:`](/documentation/Photos/PHImageManager/requestImageDataForAsset:options:resultHandler:)

Requests full-sized image data for the specified asset.

### Requesting Video Objects

[`requestPlayerItem(forVideo:options:resultHandler:)`](/documentation/Photos/PHImageManager/requestPlayerItem(forVideo:options:resultHandler:))

Requests a representation of the video asset for playback, to be loaded asynchronously.

[`requestExportSession(forVideo:options:exportPreset:resultHandler:)`](/documentation/Photos/PHImageManager/requestExportSession(forVideo:options:exportPreset:resultHandler:))

Requests an export session for writing the video asset’s data to a file, to be loaded asynchronously.

[`requestAVAsset(forVideo:options:resultHandler:)`](/documentation/Photos/PHImageManager/requestAVAsset(forVideo:options:resultHandler:))

Requests AVFoundation objects representing the video asset’s content and state, to be loaded asynchronously.

### Requesting Live Photos

[`requestLivePhoto(for:targetSize:contentMode:options:resultHandler:)`](/documentation/Photos/PHImageManager/requestLivePhoto(for:targetSize:contentMode:options:resultHandler:))

Requests a Live Photo representation for the specified asset.

### Canceling a Request

[`cancelImageRequest(_:)`](/documentation/Photos/PHImageManager/cancelImageRequest(_:))

Cancels an asynchronous request

[`PHImageRequestID`](/documentation/Photos/PHImageRequestID)

A numeric identifier for an asynchronous image request.

[`PHInvalidImageRequestID`](/documentation/Photos/PHInvalidImageRequestID)

A special value provided for asynchronous image requests that cannot be canceled.

### Constants

[`PHImageContentMode`](/documentation/Photos/PHImageContentMode)

Options for fitting an image’s aspect ratio to a requested size, used by the [`requestImage(for:targetSize:contentMode:options:resultHandler:)`](/documentation/Photos/PHImageManager/requestImage(for:targetSize:contentMode:options:resultHandler:)) method.

  <doc://com.apple.photokit/documentation/PhotoKit/image-result-info-keys>



---

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)