<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/image-rotation",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Image rotation"
}
-->

# Image rotation

Rotate images by arbitrary angles or by multiples of 90 degrees.

## Topics

### Rotating 8-bit-per-channel buffers by any angle

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

Rotates an 8-bit planar image by any angle, which you specify in radians.

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

Rotates an 8-bit-per-channel, 4-channel interleaved image by any angle, which you specify in radians.

### Rotating 16-bit-per-channel buffers by any angle

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

Rotates a floating-point 16-bit planar image by any angle, which you specify in radians.

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

Rotates a floating-point 16-bit-per-channel, 2-channel interleaved image by any angle, which you specify in radians.

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

Rotates an unsigned 16-bit-per-channel, 4-channel interleaved image by any angle, which you specify in radians.

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

Rotates a signed 16-bit-per-channel, 4-channel interleaved image by any angle, which you specify in radians.

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

Rotates a floating-point 16-bit-per-channel, 4-channel interleaved image by any angle, which you specify in radians.

### Rotating 32-bit-per-channel buffers by any angle

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

Rotates a 32-bit planar image by any angle, which you specify in radians.

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

Rotates a 32-bit-per-channel, 4-channel interleaved image by any angle, which you specify in radians.

### Rotating 8-bit-per-channel buffers by multiples of 90°

[`func vImageRotate90_Planar8(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UInt8, Pixel_8, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageRotate90_Planar8(_:_:_:_:_:))

Rotates an 8-bit planar image by a multiple of 90°.

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

Rotates an 8-bit-per-channel, 4-channel interleaved image by a multiple of 90°.

### Rotating 16-bit-per-channel buffers by multiples of 90°

[`func vImageRotate90_Planar16U(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UInt8, Pixel_16U, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageRotate90_Planar16U(_:_:_:_:_:))

Rotates an unsigned 16-bit planar image by a multiple of 90°.

[`func vImageRotate90_Planar16F(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UInt8, Pixel_16F, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageRotate90_Planar16F(_:_:_:_:_:))

Rotates a floating-point 16-bit planar image by a multiple of 90°.

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

Rotates a floating-point 16-bit-per-channel, 2-channel interleaved image by a multiple of 90°.

[`func vImageRotate90_ARGB16U(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UInt8, UnsafePointer<UInt16>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageRotate90_ARGB16U(_:_:_:_:_:))

Rotates an unsigned 16-bit-per-channel, 4-channel interleaved image by a multiple of 90°.

[`func vImageRotate90_ARGB16S(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UInt8, UnsafePointer<Int16>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageRotate90_ARGB16S(_:_:_:_:_:))

Rotates a signed 16-bit-per-channel, 4-channel interleaved image by a multiple of 90°.

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

Rotates a floating-point 16-bit-per-channel, 4-channel interleaved image by a multiple of 90°.

### Rotating 32-bit-per-channel buffers by multiples of 90°

[`func vImageRotate90_PlanarF(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UInt8, Pixel_F, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageRotate90_PlanarF(_:_:_:_:_:))

Rotates a 32-bit planar image by a multiple of 90°.

[`func vImageRotate90_ARGBFFFF(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UInt8, UnsafePointer<Float>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageRotate90_ARGBFFFF(_:_:_:_:_:))

Rotates a 32-bit-per-channel, 4-channel interleaved image by a multiple of 90°.

### Specifying the angle of a multiple of 90° rotation

  <doc://com.apple.accelerate/documentation/Accelerate/1509228-rotation-constants>



---

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)