<!--
{
  "documentType" : "article",
  "framework" : "ColorSync",
  "identifier" : "/documentation/ColorSync/pixel-format",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Pixel format and data layout"
}
-->

# Pixel format and data layout

Describe the memory layout of the pixel buffers a color transform reads and writes.

## Overview

When you convert color with [`ColorSyncTransformConvert(_:_:_:_:_:_:_:_:_:_:_:_:)`](/documentation/ColorSync/ColorSyncTransformConvert(_:_:_:_:_:_:_:_:_:_:_:_:)), you describe each
buffer’s bit depth, byte order, and alpha handling using these constants and the
[`ColorSyncDataLayout`](/documentation/ColorSync/ColorSyncDataLayout) type.

## Topics

### Describing data layout

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

The location of the alpha component in a pixel, and whether it’s premultiplied.

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

The bit depth and numeric type of a color component in a pixel.

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

A bit field describing the alpha information and byte order of a pixel layout.

### Handling alpha

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

The alpha component is stored first and is not premultiplied. For example, non-premultiplied ARGB.

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

The mask for extracting the [`ColorSyncAlphaInfo`](/documentation/ColorSync/ColorSyncAlphaInfo) value from a [`ColorSyncDataLayout`](/documentation/ColorSync/ColorSyncDataLayout).

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

The alpha component is stored last and is not premultiplied. For example, non-premultiplied RGBA.

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

There is no alpha channel. For example, RGB.

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

There is no alpha channel; the most significant bits are ignored. For example, XRGB.

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

There is no alpha channel; the least significant bits are ignored. For example, RGBX.

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

The alpha component is stored first and the color components are premultiplied by it. For example, premultiplied ARGB.

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

The alpha component is stored last and the color components are premultiplied by it. For example, premultiplied RGBA.

### Setting byte order

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

16-bit, big-endian byte order.

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

16-bit, little-endian byte order.

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

32-bit, big-endian byte order.

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

32-bit, little-endian byte order.

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

The default (host) byte order.

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

The mask for extracting the byte-order value from a [`ColorSyncDataLayout`](/documentation/ColorSync/ColorSyncDataLayout).

### Choosing bit depth and range

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

10-bit integer components.

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

16-bit floating-point (half-float) components.

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

16-bit integer components.

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

One-bit values, used for gamut-check results.

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

32-bit floating-point components.

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

32-bit integer components.

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

32-bit named-color index values.

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

8-bit integer components.



---

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)