---
title: "vImageConvert_Planar16UtoARGB16U(_:_:_:_:_:_:)"
framework: accelerate
role: symbol
role_heading: Function
path: "accelerate/vimageconvert_planar16utoargb16u(_:_:_:_:_:_:)"
---

# vImageConvert_Planar16UtoARGB16U(_:_:_:_:_:_:)

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

## Declaration

```swift
func vImageConvert_Planar16UtoARGB16U(_ aSrc: UnsafePointer<vImage_Buffer>, _ rSrc: UnsafePointer<vImage_Buffer>, _ gSrc: UnsafePointer<vImage_Buffer>, _ bSrc: UnsafePointer<vImage_Buffer>, _ argbDest: UnsafePointer<vImage_Buffer>, _ flags: vImage_Flags) -> vImage_Error
```

## Parameters

- `aSrc`: The source vImage buffer that contains the alpha channel.
- `rSrc`: The source vImage buffer that contains the red channel.
- `gSrc`: The source vImage buffer that contains the green channel.
- `bSrc`: The source vImage buffer that contains the blue channel.
- `argbDest`: A pointer to the destination vImage buffer structure. You’re responsible for filling out the doc://com.apple.accelerate/documentation/Accelerate/vImage_Buffer/height, doc://com.apple.accelerate/documentation/Accelerate/vImage_Buffer/width, and doc://com.apple.accelerate/documentation/Accelerate/vImage_Buffer/rowBytes fields of this structure, and for allocating a data buffer of the appropriate size. On return, the data buffer this structure points to contains the destination image data. When you no longer need the data buffer, deallocate the memory to prevent memory leaks.
- `flags`: The options to use when performing the operation. If your code implements its own tiling or its own multithreading, pass doc://com.apple.accelerate/documentation/Accelerate/kvImageDoNotTile; otherwise, pass doc://com.apple.accelerate/documentation/Accelerate/kvImageNoFlags.

## Return Value

Return Value kvImageNoError; otherwise, one of the error codes in Data Types and Constants.

## Discussion

Discussion The source and destination buffers need to have the same height and width.
