<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/functions-that-perform-any-to-any-conversion",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Functions that perform any-to-any conversion"
}
-->

# Functions that perform any-to-any conversion

Convert between Core Video or Core Graphics image data of arbitrary color spaces and bit depths.

## Topics

### Creating a converter

[`class vImageConverter`](/documentation/Accelerate/vImageConverter)

A description of a conversion from one image format to another.

[`func vImageConverter_CreateWithCGImageFormat(UnsafePointer<vImage_CGImageFormat>, UnsafePointer<vImage_CGImageFormat>, UnsafePointer<CGFloat>!, vImage_Flags, UnsafeMutablePointer<vImage_Error>!) -> Unmanaged<vImageConverter>!`](/documentation/Accelerate/vImageConverter_CreateWithCGImageFormat(_:_:_:_:_:))

Creates a vImage converter that converts from one vImage Core Graphics image format to another.

[`func vImageConverter_CreateWithCGColorConversionInfo(CGColorConversionInfo, UnsafePointer<vImage_CGImageFormat>, UnsafePointer<vImage_CGImageFormat>, UnsafePointer<CGFloat>!, vImage_Flags, UnsafeMutablePointer<vImage_Error>!) -> Unmanaged<vImageConverter>!`](/documentation/Accelerate/vImageConverter_CreateWithCGColorConversionInfo(_:_:_:_:_:_:))

Creates an any-to-any converter that uses a color conversion information object to convert from one image format to another.

[`func vImageConverter_CreateForCGToCVImageFormat(UnsafePointer<vImage_CGImageFormat>, vImageCVImageFormat, UnsafePointer<CGFloat>!, vImage_Flags, UnsafeMutablePointer<vImage_Error>!) -> Unmanaged<vImageConverter>!`](/documentation/Accelerate/vImageConverter_CreateForCGToCVImageFormat(_:_:_:_:_:))

Creates a vImage converter that converts a Core Graphics-formatted image to a Core Video-formatted image.

[`func vImageConverter_CreateForCVToCGImageFormat(vImageCVImageFormat, UnsafePointer<vImage_CGImageFormat>, UnsafePointer<CGFloat>!, vImage_Flags, UnsafeMutablePointer<vImage_Error>!) -> Unmanaged<vImageConverter>!`](/documentation/Accelerate/vImageConverter_CreateForCVToCGImageFormat(_:_:_:_:_:))

Creates a vImage converter that converts a Core Video-formatted image to a Core Graphics-formatted image.

[`func vImageConverter_CreateWithColorSyncCodeFragment(CFTypeRef, UnsafePointer<vImage_CGImageFormat>, UnsafePointer<vImage_CGImageFormat>!, UnsafePointer<CGFloat>!, vImage_Flags, UnsafeMutablePointer<vImage_Error>!) -> Unmanaged<vImageConverter>!`](/documentation/Accelerate/vImageConverter_CreateWithColorSyncCodeFragment(_:_:_:_:_:_:))

Creates a vImage converter to convert from one vImage Core Graphics image format to another, using custom ColorSync transform.

### Performing a conversion

[`func vImageConvert_AnyToAny(vImageConverter, UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutableRawPointer!, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConvert_AnyToAny(_:_:_:_:_:))

Converts the pixels in a vImage buffer to another format, using the specified converter.

  <doc://com.apple.accelerate/documentation/Accelerate/1399056-vimage-buffer-type-codes>

### Querying a converter’s properties

[`func vImageConverter_MustOperateOutOfPlace(vImageConverter, UnsafePointer<vImage_Buffer>!, UnsafePointer<vImage_Buffer>!, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageConverter_MustOperateOutOfPlace(_:_:_:_:))

Determines whether a converter is capable of operating in place.

[`func vImageConverter_GetSourceBufferOrder(vImageConverter) -> UnsafePointer<vImageBufferTypeCode>!`](/documentation/Accelerate/vImageConverter_GetSourceBufferOrder(_:))

Returns a list of vImage source buffer channel names, specifying the order of planes.

[`func vImageConverter_GetDestinationBufferOrder(vImageConverter) -> UnsafePointer<vImageBufferTypeCode>!`](/documentation/Accelerate/vImageConverter_GetDestinationBufferOrder(_:))

Returns a list of vImage destination buffer channel names, specifying the order of planes.

[`func vImageConverter_GetNumberOfSourceBuffers(vImageConverter) -> UInt`](/documentation/Accelerate/vImageConverter_GetNumberOfSourceBuffers(_:))

Returns the number of source buffers consumed by the converter.

[`func vImageConverter_GetNumberOfDestinationBuffers(vImageConverter) -> UInt`](/documentation/Accelerate/vImageConverter_GetNumberOfDestinationBuffers(_:))

Returns the number of destination buffers written to by the converter.

### Memory management

[`void vImageConverter_Retain(vImageConverterRef converter);`](/documentation/Accelerate/vImageConverter_Retain)

Retains a vImage converter.

[`void vImageConverter_Release(vImageConverterRef converter);`](/documentation/Accelerate/vImageConverter_Release)

Releases a vImage converter.



---

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)