Saltar al contenido

¿Cómo rotar una imagen en Swift?

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *