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

# premultiply(channelOrdering:)

Transforms an 8-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 ... 255 in the pixel buffer as the values 0 ... 1. For example, the following code multiplies the RGB values [32, 64, 128] by the alpha value 128 (interpreted as 0.5): let src = vImage.PixelBuffer<vImage.Interleaved8x4>(     pixelValues: [127, 32, 64, 128],     size: vImage.Size(width: 1, height: 1))

src.premultiply(channelOrdering: .ARGB)

// Prints "[127, 16, 32, 64]". 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:)-302ci.md)
- [premultiply()](accelerate/vimage/pixelbuffer/premultiply().md)
- [premultiply(channelOrdering:)](accelerate/vimage/pixelbuffer/premultiply(channelordering:)-fzwd.md)
