---
title: "withUnsafeVImageBuffer(_:)"
framework: accelerate
role: symbol
role_heading: Instance Method
path: "accelerate/vimage/pixelbuffer/withunsafevimagebuffer(_:)"
---

# withUnsafeVImageBuffer(_:)

Calls the given closure with the underlying vImage buffer.

## Declaration

```swift
func withUnsafeVImageBuffer<R>(_ body: (vImage_Buffer) throws -> R) rethrows -> R
```

## Parameters

- `body`: A closure with a doc://com.apple.accelerate/documentation/Accelerate/vImage_Buffer parameter that points to the underlying vImage buffer of the pixel buffer.

## Return Value

Return Value The return value, if any, of the body closure parameter.

## Discussion

Discussion Use this function to incorporate pixel buffer based image processing code with existing vImage code. For example, the following code accesses a pixel buffer’s underlying vImage buffer’s rowBytes property:  let src = try vImage.PixelBuffer<vImage.Interleaved8x4>(cgImage: cgImage,                                                          cgImageFormat: &cgImageFormat)

src.withUnsafeVImageBuffer { vImageBuffer in      print(vImageBuffer.rowBytes)  }

## See Also

### Accessing underlying vImage buffers

- [withUnsafePointerToVImageBuffer(_:)](accelerate/vimage/pixelbuffer/withunsafepointertovimagebuffer(_:).md)
- [withUnsafeVImageBuffers(_:)](accelerate/vimage/pixelbuffer/withunsafevimagebuffers(_:).md)
