<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/permuting-channels",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Permuting Channels"
}
-->

# Permuting Channels

Reorder the channels in an image.

## Topics

### Permuting channels

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

Permutes the channels of an 8-bit-per-channel, 3-channel interleaved buffer.

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

Permutes the channels of an 8-bit-per-channel, 4-channel interleaved buffer.

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

Permutes the channels of an unsigned 16-bit-per-channel, 4-channel interleaved buffer.

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

Permutes the channels of a floating-point 16-bit-per-channel, 4-channel interleaved buffer.

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

Permutes the channels of a floating-point 32-bit-per-channel, 4-channel interleaved buffer.

### Permuting channels with masked insert

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

Permutes and overwrites the channels of an 8-bit-per-channel, 4-channel interleaved buffer.

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

Permutes and overwrites the channels of an unsigned 16-bit-per-channel, 4-channel interleaved buffer.

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

Permutes and overwrites the channels of a floating-point 32-bit-per-channel, 4-channel interleaved 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)