iOS - UIImageView - как обрабатывать ориентацию изображения UIImage - PullRequest
72 голосов
/ 18 января 2012

Можно ли настроить UIImageView для обработки ориентации изображения? Когда я устанавливаю UIImageView на изображение с ориентацией ВПРАВО (это фотография с камеры), изображение поворачивается вправо, но я хочу показать его в правильной ориентации, так как был взят.

Я знаю, что могу вращать данные изображения, но можно сделать это более элегантно?

Спасибо

Ответы [ 13 ]

1 голос
/ 18 июля 2018
extension UIImage {
    func fixImageOrientation() -> UIImage {
        UIGraphicsBeginImageContext(self.size)
        self.draw(at: .zero)
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return newImage ?? self
    }
}
  1. Создайте расширение, как в верхнем примере.
  2. Позвоните: imageView.image?.fixImageOrientation() или UIImage(named: "someImage").fixImageOrientation()

  3. Удачи всем!

1 голос
/ 26 сентября 2017

Swift 3.0 версия ответа Томми

let imageToDisplay = UIImage.init(cgImage: originalImage.cgImage!, scale: originalImage.scale, orientation: UIImageOrientation.up)
0 голосов
/ 29 марта 2019

Вдохновленный @Aqua Ответ .....

в Цели C

- (UIImage *)fixImageOrientation:(UIImage *)img {

   UIGraphicsBeginImageContext(img.size);
   [img drawAtPoint:CGPointZero];

   UIImage *newImg = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();

   if (newImg) {
       return newImg;
   }

   return img;
}
...