---
title: "premultiply(channelOrdering:)"
framework: accelerate
role: symbol
role_heading: Instance Method
path: "accelerate/vimage/pixelbuffer/premultiply(channelordering:)-302ci"
---

# premultiply(channelOrdering:)

Transforms an unsigned 16-bit ARGB or RGBA pixel buffer in-place from nonpremultiplied alpha format to premultiplied alpha format.

## Declaration

```swift
func premultiply(channelOrdering: vImage.ChannelOrdering)
```

## Parameters

- `channelOrdering`: The channel ordering of the source buffer.

## Discussion

Discussion This function multiplies the color values in each pixel`self` by the corresponding alpha value and copies the alpha value to the destination unchanged. The function treats the values 0 ... UInt16.max in the pixel buffer as the values 0 ... 1. For example, the following code multiplies the RGB values [UInt16.max / 8, UInt16.max / 4, UInt16.max / 2] by the alpha value UInt16.max / 2: let src = vImage.PixelBuffer<vImage.Interleaved16Ux4>(     pixelValues: [UInt16.max / 2,                   UInt16.max / 8, UInt16.max / 4, UInt16.max / 2],     size: vImage.Size(width: 1, height: 1))

src.premultiply(channelOrdering: .ARGB)

// Prints "[32767, 4095, 8191, 16383] //  = [UInt16.max / 2, UInt16.max / 16, UInt16.max / 8, UInt16.max / 4] print(src.array)

## See Also

### Premultiply

- [premultiply(alpha:)](accelerate/vimage/pixelbuffer/premultiply(alpha:)-11gly.md)
- [premultiply(alpha:)](accelerate/vimage/pixelbuffer/premultiply(alpha:)-76rr.md)
- [premultiply(channelOrdering:)](accelerate/vimage/pixelbuffer/premultiply(channelordering:)-4xpq9.md)
- [premultiply()](accelerate/vimage/pixelbuffer/premultiply().md)
- [premultiply(channelOrdering:)](accelerate/vimage/pixelbuffer/premultiply(channelordering:)-fzwd.md)
