<!--
{
  "documentType" : "article",
  "framework" : "ColorSync",
  "identifier" : "/documentation/ColorSync/color-profiles",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Color profiles"
}
-->

# Color profiles

Work with the ICC profiles that describe device and working color spaces.

## Overview

A [`ColorSyncProfile`](/documentation/ColorSync/ColorSyncProfile) wraps an ICC profile, the description of a device or working color space that
ColorSync uses to convert color accurately. Create profiles from a name, a file, or raw ICC data, and
read a profile’s tags and header. To round trip a profile through raw ICC bytes, use
[`ColorSyncProfileCopyData(_:_:)`](/documentation/ColorSync/ColorSyncProfileCopyData(_:_:)) to get the bytes you embed in an image or file, and
[`ColorSyncProfileCreate(_:_:)`](/documentation/ColorSync/ColorSyncProfileCreate(_:_:)) to reconstruct a profile from bytes you extract. On macOS, you can
also install a profile for the current user in
`~/Library/ColorSync/Profiles`, or for everyone on the system in `/Library/ColorSync/Profiles`. To
convert color between profiles, build a
[`ColorSyncTransform`](/documentation/ColorSync/ColorSyncTransform). To bridge to Core Graphics, pass a profile to
<doc://com.apple.documentation/documentation/CoreGraphics/CGColorSpaceCreateWithColorSyncProfile(_:_:)>.

## Topics

### Profiling objects

[`ColorSyncMutableProfile`](/documentation/ColorSync/ColorSyncMutableProfile)

A reference to a mutable ICC color profile.

[`ColorSyncProfile`](/documentation/ColorSync/ColorSyncProfile)

A reference to an immutable International Color Consortium (ICC) color profile.

### Creating a profile

[`ColorSyncProfileCreateWithName`](/documentation/ColorSync/ColorSyncProfileCreateWithName(_:))

Creates a profile from a predefined profile name.

[`ColorSyncProfileCreateWithURL`](/documentation/ColorSync/ColorSyncProfileCreateWithURL(_:_:))

Creates a profile from ICC profile data at a URL.

[`ColorSyncProfileCreateWithURLAndOptions`](/documentation/ColorSync/ColorSyncProfileCreateWithURLAndOptions(_:_:_:))

Creates a profile from ICC profile data at a URL, using the given options.

[`ColorSyncProfileCreateMutable`](/documentation/ColorSync/ColorSyncProfileCreateMutable())

Creates an empty mutable profile.

[`ColorSyncProfileCreateMutableCopy`](/documentation/ColorSync/ColorSyncProfileCreateMutableCopy(_:))

Creates a mutable copy of a profile.

### Embedding and extracting profiles

[`ColorSyncProfileCopyData`](/documentation/ColorSync/ColorSyncProfileCopyData(_:_:))

Copies the flattened data from a profile.

[`ColorSyncProfileCreate`](/documentation/ColorSync/ColorSyncProfileCreate(_:_:))

Creates a profile from ICC profile data.

### Accessing standard RGB profiles

[`kColorSyncSRGBProfile`](/documentation/ColorSync/kColorSyncSRGBProfile)

The sRGB color profile.

[`kColorSyncAdobeRGB1998Profile`](/documentation/ColorSync/kColorSyncAdobeRGB1998Profile)

The Adobe RGB (1998) color profile.

[`kColorSyncDisplayP3Profile`](/documentation/ColorSync/kColorSyncDisplayP3Profile)

The Display P3 color profile.

[`kColorSyncDCIP3Profile`](/documentation/ColorSync/kColorSyncDCIP3Profile)

The DCI-P3 color profile.

[`kColorSyncITUR709Profile`](/documentation/ColorSync/kColorSyncITUR709Profile)

The ITU-R BT.709 color profile.

[`kColorSyncITUR2020Profile`](/documentation/ColorSync/kColorSyncITUR2020Profile)

The ITU-R BT.2020 color profile.

[`kColorSyncROMMRGBProfile`](/documentation/ColorSync/kColorSyncROMMRGBProfile)

The ROMM RGB (ProPhoto RGB) color profile.

[`kColorSyncACESCGLinearProfile`](/documentation/ColorSync/kColorSyncACESCGLinearProfile)

The ACEScg linear color profile.

[`kColorSyncGenericRGBProfile`](/documentation/ColorSync/kColorSyncGenericRGBProfile)

The generic RGB color profile.

### Accessing generic and special profiles

[`kColorSyncGenericGrayProfile`](/documentation/ColorSync/kColorSyncGenericGrayProfile)

The generic gray color profile.

[`kColorSyncGenericGrayGamma22Profile`](/documentation/ColorSync/kColorSyncGenericGrayGamma22Profile)

The generic gray color profile with a gamma of 2.2.

[`kColorSyncGenericCMYKProfile`](/documentation/ColorSync/kColorSyncGenericCMYKProfile)

The generic CMYK color profile.

[`kColorSyncGenericLabProfile`](/documentation/ColorSync/kColorSyncGenericLabProfile)

The generic CIELAB color profile.

[`kColorSyncGenericXYZProfile`](/documentation/ColorSync/kColorSyncGenericXYZProfile)

The generic CIEXYZ color profile.

[`kColorSyncWebSafeColorsProfile`](/documentation/ColorSync/kColorSyncWebSafeColorsProfile)

The web-safe colors profile.

### Reading profile data

[`ColorSyncProfileCopyDescriptionString`](/documentation/ColorSync/ColorSyncProfileCopyDescriptionString(_:))

Copies the localized description string of a profile.

[`ColorSyncProfileCopyHeader`](/documentation/ColorSync/ColorSyncProfileCopyHeader(_:))

Copies the header from a profile.

[`ColorSyncProfileGetURL`](/documentation/ColorSync/ColorSyncProfileGetURL(_:_:))

Returns the URL of a profile.

[`ColorSyncProfileGetTypeID`](/documentation/ColorSync/ColorSyncProfileGetTypeID())

Returns the unique identifier for the ColorSync profile opaque type.

### Managing tags and the header

[`ColorSyncProfileContainsTag`](/documentation/ColorSync/ColorSyncProfileContainsTag(_:_:))

Returns a Boolean value indicating whether a profile contains a given tag.

[`ColorSyncProfileCopyTag`](/documentation/ColorSync/ColorSyncProfileCopyTag(_:_:))

Copies a tag from a profile.

[`ColorSyncProfileCopyTagSignatures`](/documentation/ColorSync/ColorSyncProfileCopyTagSignatures(_:))

Copies the tag signatures of a profile.

[`ColorSyncProfileRemoveTag`](/documentation/ColorSync/ColorSyncProfileRemoveTag(_:_:))

Removes a tag from a mutable profile.

[`ColorSyncProfileSetHeader`](/documentation/ColorSync/ColorSyncProfileSetHeader(_:_:))

Sets the header of a mutable profile.

[`ColorSyncProfileSetTag`](/documentation/ColorSync/ColorSyncProfileSetTag(_:_:_:))

Sets a tag in a mutable profile.

### Inspecting color characteristics

[`ColorSyncProfileIsWideGamut`](/documentation/ColorSync/ColorSyncProfileIsWideGamut(_:))

Returns a Boolean value indicating whether the display profile describes a wide-gamut color space.

[`ColorSyncProfileIsPQBased`](/documentation/ColorSync/ColorSyncProfileIsPQBased(_:))

Returns a Boolean value indicating whether the profile uses ITU BT.2100 PQ transfer functions.

[`ColorSyncProfileIsHLGBased`](/documentation/ColorSync/ColorSyncProfileIsHLGBased(_:))

Returns a Boolean value indicating whether the profile uses ITU BT.2100 HLG transfer functions.

[`ColorSyncProfileIsMatrixBased`](/documentation/ColorSync/ColorSyncProfileIsMatrixBased(_:))

Returns a Boolean value indicating whether the profile is matrix-based.

[`ColorSyncProfileEstimateGamma`](/documentation/ColorSync/ColorSyncProfileEstimateGamma(_:_:))

Estimates the gamma of a profile.

[`ColorSyncProfileVerify`](/documentation/ColorSync/ColorSyncProfileVerify(_:_:_:))

Verifies whether a profile can be used.

### Finding installed profiles

[`ColorSyncIterateInstalledProfiles`](/documentation/ColorSync/ColorSyncIterateInstalledProfiles(_:_:_:_:))

Iterates over the installed profiles.

[`ColorSyncProfileIterateCallback`](/documentation/ColorSync/ColorSyncProfileIterateCallback)

A callback that the framework invokes for each installed profile during iteration.

### Installing profiles

[`ColorSyncProfileInstall`](/documentation/ColorSync/ColorSyncProfileInstall(_:_:_:_:))

Installs a profile in the specified domain.

[`ColorSyncProfileUninstall`](/documentation/ColorSync/ColorSyncProfileUninstall(_:_:))

Uninstalls a profile.

[`ColorSyncIterateInstalledProfilesWithOptions`](/documentation/ColorSync/ColorSyncIterateInstalledProfilesWithOptions(_:_:_:_:_:))

Iterates over the installed profiles, using the given options.

[`COLORSYNC_PROFILE_INSTALL_ENTITLEMENT`](/documentation/ColorSync/COLORSYNC_PROFILE_INSTALL_ENTITLEMENT)

[`kColorSyncProfileComputerDomain`](/documentation/ColorSync/kColorSyncProfileComputerDomain)

The profile domain for profiles shared by all users of the computer.

[`kColorSyncProfileUserDomain`](/documentation/ColorSync/kColorSyncProfileUserDomain)

The profile domain for the current user’s profiles.

### Accessing profile properties

[`kColorSyncProfileClass`](/documentation/ColorSync/kColorSyncProfileClass)

A key for the profile’s class.

[`kColorSyncProfileColorSpace`](/documentation/ColorSync/kColorSyncProfileColorSpace)

A key for the profile’s color space.

[`kColorSyncProfileDescription`](/documentation/ColorSync/kColorSyncProfileDescription)

A key for the profile’s localized description.

[`kColorSyncProfileHeader`](/documentation/ColorSync/kColorSyncProfileHeader)

A key for the profile’s header data.

[`kColorSyncProfileIsValid`](/documentation/ColorSync/kColorSyncProfileIsValid)

A key indicating whether the profile is valid.

[`kColorSyncProfilePCS`](/documentation/ColorSync/kColorSyncProfilePCS)

A key for the profile’s connection space (PCS).

[`kColorSyncProfileURL`](/documentation/ColorSync/kColorSyncProfileURL)

A key for the profile’s URL.

### Computing profile digests

[`ColorSyncProfileGetMD5`](/documentation/ColorSync/ColorSyncProfileGetMD5(_:))

Returns the MD5 digest for a profile.

[`ColorSyncMD5`](/documentation/ColorSync/ColorSyncMD5)

An MD5 digest that uniquely identifies a profile, as defined by the ICC specification.

[`COLORSYNC_MD5_LENGTH`](/documentation/ColorSync/COLORSYNC_MD5_LENGTH)

[`kColorSyncProfileMD5Digest`](/documentation/ColorSync/kColorSyncProfileMD5Digest)

A key for the profile’s MD5 digest.

### Tracking changes and cache

[`kColorSyncProfileRepositoryChangeNotification`](/documentation/ColorSync/kColorSyncProfileRepositoryChangeNotification)

A notification that ColorSync posts when the profile repository changes.

[`kColorSyncProfileCacheSeed`](/documentation/ColorSync/kColorSyncProfileCacheSeed)

The current profile-cache seed (uint32_t), sent with [`kColorSyncProfileRepositoryChangeNotification`](/documentation/ColorSync/kColorSyncProfileRepositoryChangeNotification).

[`kColorSyncWaitForCacheReply`](/documentation/ColorSync/kColorSyncWaitForCacheReply)

An iteration option that waits for the profile cache to finish updating before returning.



---

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)