<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/vimage-buffers",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "vImage buffers"
}
-->

# vImage buffers

Use buffers to pass image data to and from vImage operations.

## Discussion

The [`vImage_Buffer`](/documentation/Accelerate/vImage_Buffer) structure is the fundamental data type for passing image data to and from vImage operations.

A vImage buffer describes a rectangular region of pixels and specifies the width, height, number of bytes in each row, and a pointer to the pixel data memory. However, a buffer doesn’t describe image properties, such as pixel format, color space, and channel ordering.

vImage provides functions that initialize buffers from Core Graphics images and Core Video pixel buffers, generate Core Graphics images, and populate Core Video pixel buffers from vImage buffers.

## Topics

### Initializing vImage buffers

[`vImage_Buffer`](/documentation/Accelerate/vImage_Buffer)

An image buffer that stores an image’s pixel data, dimensions, and row stride.

[`vImageBuffer_Init(_:_:_:_:_:)`](/documentation/Accelerate/vImageBuffer_Init(_:_:_:_:_:))

Initializes a vImage buffer with a specified width, height, and bits per pixel.

### Querying vImage buffer attributes

[`vImageBuffer_GetSize(_:)`](/documentation/Accelerate/vImageBuffer_GetSize(_:))

Returns the size, in pixels, of a vImage buffer.

### Copying vImage buffers

[`vImageCopyBuffer(_:_:_:_:)`](/documentation/Accelerate/vImageCopyBuffer(_:_:_:_:))

Copies the contents of a vImage buffer to a destination 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)