Contents

overwriteChannels(_:withInterleavedBuffer:destination:)

Overwrites the pixels of one or more channels of the pixel buffer with the provided 32-bit interleaved pixel buffer.

Declaration

func overwriteChannels(_ channels: [UInt8], withInterleavedBuffer buffer: vImage.PixelBuffer<Format>, destination: vImage.PixelBuffer<Format>)

Parameters

  • channels:

    An array that contains the indices of the channels that the function overwrites.

  • buffer:

    The planar buffer that the function writes to the channels.

  • destination:

    The destination pixel buffer.

Discussion

Use this function to overwrite one or more channels of an interleaved buffer with an interleaved buffer. The following code overwrites channels 1 and 3 with the values in overwriteValues:

let pixelValues: [Pixel_F] = [ 1, 2, 3, 4,
                               5, 6, 7, 8 ]
let buffer = vImage.PixelBuffer(pixelValues: pixelValues,
                                size: vImage.Size(width: 1,
                                                  height: 2),
                                pixelFormat: vImage.InterleavedFx4.self)

let destination = vImage.PixelBuffer(size: vImage.Size(width: 1,
                                                       height: 2),
                                     pixelFormat: vImage.InterleavedFx4.self)

let overwriteValues: [Pixel_F] = [ 101, 102, 103, 104,
                                   105, 106, 107, 108]

let overwriteBuffer = vImage.PixelBuffer<vImage.Interleaved8x4>(pixelValues: overwriteValues,
                                                                size: vImage.Size(width: 1,
                                                                                  height: 2))

buffer.overwriteChannels([3, 1],
                         withInterleavedBuffer: overwriteBuffer,
                         destination: destination)

On return, destination.array contains the following values:

[ 1, 102, 3, 104,  
  5, 106, 7, 108 ]

See Also

Overwriting Channels