<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/applying-affine-transformations-to-images",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Applying affine transformations to images"
}
-->

# Applying affine transformations to images

Translate, rotate, and scale images.

## Topics

### Single-Precision Affine Transformation

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

Applies a single-precision affine transformation to an 8-bit planar image.

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

Applies a single-precision affine transformation to a 32-bit planar image.

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

Applies a single-precision affine transformation to an unsigned 16-bit-per-channel, 4-channel interleaved image.

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

Applies a single-precision affine transformation to a signed 16-bit-per-channel, 4-channel interleaved image.

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

Applies a single-precision affine transformation to an 8-bit-per-channel, 4-channel interleaved image.

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

Applies a single-precision affine transformation to a 32-bit-per-channel, 4-channel interleaved image.

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

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

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

### Double-Precision Affine Transformation

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

Applies a double-precision affine transformation to an 8-bit planar image.

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

Applies a double-precision affine transformation to a 32-bit planar image.

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

Applies a double-precision affine transformation to a floating-point 16-bit planar image.

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

Applies a double-precision affine transformation to a floating-point 16-bit-per-channel, 2-channel interleaved image.

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

Applies a double-precision affine transformation to an 8-bit-per-channel, 4-channel interleaved image.

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

Applies a double-precision affine transformation to an unsigned 16-bit-per-channel, 4-channel interleaved image.

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

Applies a double-precision affine transformation to a signed 16-bit-per-channel, 4-channel interleaved image.

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

Applies a double-precision affine transformation to a floating-point 16-bit-per-channel, 4-channel interleaved image.

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

Applies a double-precision affine transformation to a 32-bit-per-channel, 4-channel interleaved image.

### Core Graphics Affine Transformation

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

Applies a Core Graphics affine transformation to a Planar8 source image.

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

Applies a Core Graphics affine transformation to a PlanarF source image.

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

Applies a Core Graphics affine transformation to an ARGB16U source image.

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

Applies a Core Graphics affine transformation to an ARGB16S source image.

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

Applies a Core Graphics affine transformation to an ARGB8888 source image.

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

Applies a Core Graphics affine transformation to an ARGBFFFF source image.



---

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)