Solución:
establecer imagen ImageView
ImageView.transform = ImageView.transform.rotated(by: CGFloat(M_PI_2))
Rápido 5
ImageView.transform = ImageView.transform.rotated(by: .pi) // 180˚
ImageView.transform = ImageView.transform.rotated(by: .pi / 2) // 90˚
ImageView.transform = ImageView.transform.rotated(by: .pi * 1.5) // 270˚
En una línea:
rotatedViewBox.transform = CGAffineTransform(rotationAngle: CGFloat.pi/2)
Esta es una extensión de UIImage
que apunta Swift 4.0 y puede rotar solo la imagen sin necesidad de UIImageView
. Se probó con éxito que la imagen se rotara y que no solo se cambiaran sus datos exif.
import UIKit
extension UIImage {
func rotate(radians: CGFloat) -> UIImage {
let rotatedSize = CGRect(origin: .zero, size: size)
.applying(CGAffineTransform(rotationAngle: CGFloat(radians)))
.integral.size
UIGraphicsBeginImageContext(rotatedSize)
if let context = UIGraphicsGetCurrentContext() {
let origin = CGPoint(x: rotatedSize.width / 2.0,
y: rotatedSize.height / 2.0)
context.translateBy(x: origin.x, y: origin.y)
context.rotate(by: radians)
draw(in: CGRect(x: -origin.y, y: -origin.x,
width: size.width, height: size.height))
let rotatedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return rotatedImage ?? self
}
return self
}
}
Para realizar una rotación de 180 grados, puede llamarlo así:
let rotatedImage = image.rotate(radians: .pi)
Si por alguna razón no gira, se devolverá la imagen original.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)