<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/functions-that-interleave-integer-planar-buffers",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Functions that interleave integer planar buffers"
}
-->

# Functions that interleave integer planar buffers

Combine discrete integer planar buffers into an interleaved buffer.

## Topics

### Interleaving unsigned 8-bit planar buffers

[`func vImageConvert_PlanarToChunky8(UnsafeMutablePointer<UnsafePointer<vImage_Buffer>?>, UnsafeMutablePointer<UnsafeMutableRawPointer?>, UInt32, Int, vImagePixelCount, vImagePixelCount, Int, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_PlanarToChunky8(_:_:_:_:_:_:_:_:))

Interleaves the specifed number of 8-bit planar buffers into an 8-bit-per-channel interleaved buffer.

### Interleaving three unsigned 8-bit planar buffers

[`func vImageConvert_Planar8toRGB565(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar8toRGB565(_:_:_:_:_:))

Interleaves three 8-bit planar buffers into an RGB565 3-channel interleaved buffer.

[`func vImageConvert_Planar8toRGB888(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar8toRGB888(_:_:_:_:_:))

Interleaves three 8-bit planar buffers into an 8-bit-per-channel, 3-channel interleaved buffer.

[`func vImageConvert_Planar8ToXRGB8888(Pixel_8, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar8ToXRGB8888(_:_:_:_:_:_:))

Interleaves three 8-bit planar buffers into an 8-bit-per-channel, 4-channel interleaved XRGB buffer with the specified constant alpha value.

[`#define vImageConvert_Planar8ToRGBX8888(_red, _green, _blue, _alpha, _dest, _flags)`](/documentation/Accelerate/vImageConvert_Planar8ToRGBX8888)

Interleaves three 8-bit planar buffers into an 8-bit-per-channel, 4-channel interleaved RGBX buffer with the specified constant alpha value.

[`func vImageConvert_Planar8ToBGRX8888(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, Pixel_8, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar8ToBGRX8888(_:_:_:_:_:_:))

Interleaves three 8-bit planar buffers into an 8-bit-per-channel, 4-channel interleaved BGRX buffer with the specified constant alpha value.

[`func vImageConvert_Planar8ToXRGBFFFF(Pixel_F, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<Float>!, UnsafePointer<Float>!, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar8ToXRGBFFFF(_:_:_:_:_:_:_:_:))

Interleaves three 8-bit planar buffers into a floating-point 32-bit-per-channel, 4-channel interleaved XRGB buffer with the specified constant alpha value.

[`func vImageConvert_Planar8ToBGRXFFFF(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, Pixel_F, UnsafePointer<vImage_Buffer>, UnsafePointer<Float>!, UnsafePointer<Float>!, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar8ToBGRXFFFF(_:_:_:_:_:_:_:_:))

Interleaves three 8-bit planar buffers into a floating-point 32-bit-per-channel, 4-channel interleaved BGRX buffer with the specified constant alpha value.

[`#define vImageConvert_Planar8ToRGBXFFFF(_red, _green, _blue, _alpha, _dest, _maxFloat, _minFloat, _flags)`](/documentation/Accelerate/vImageConvert_Planar8ToRGBXFFFF)

Interleaves three 8-bit planar buffers into a floating-point 32-bit-per-channel, 4-channel interleaved RGBX buffer with the specified constant alpha value.

### Interleaving four unsigned 8-bit planar buffers

[`func vImageConvert_Planar8toARGB1555(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar8toARGB1555(_:_:_:_:_:_:))

Interleaves four 8-bit planar buffers into an ARGB1555 4-channel interleaved buffer.

[`func vImageConvert_Planar8toARGB8888(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar8toARGB8888(_:_:_:_:_:_:))

Interleaves four 8-bit planar buffers into an 8-bit-per-channel, 4-channel interleaved buffer.

[`func vImageConvert_Planar8ToARGBFFFF(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<Float>!, UnsafePointer<Float>!, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar8ToARGBFFFF(_:_:_:_:_:_:_:_:))

Interleaves four 8-bit planar buffers into a floating-point 32-bit-per-channel, 4-channel interleaved ARGB buffer.

### Interleaving three unsigned 16-bit planar buffers

[`func vImageConvert_Planar16UtoRGB16U(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar16UtoRGB16U(_:_:_:_:_:))

Interleaves three unsigned 16-bit planar buffers into an unsigned 16-bit-per-channel, 3-channel interleaved buffer.

### Interleaving four unsigned 16-bit planar buffers

[`func vImageConvert_Planar16UtoARGB16U(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_Planar16UtoARGB16U(_:_:_:_:_:_:))

Interleaves four unsigned 16-bit planar buffers into an unsigned 16-bit-per-channel, 4-channel interleaved ARGB buffer.



---

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)