Изображение, загруженное на firebase камерой iOS, поворачивается на 90 градусов в Android и в Интернете. - PullRequest
0 голосов
/ 22 мая 2018

Я работаю над приложением, которому необходимо загрузить изображение в хранилище Firebase, а URL этого изображения хранится в базе данных Firebase.Проблема в том, что всякий раз, когда я загружаю изображение в хранилище, используя изображение с камеры, изображение поворачивается на -90 градусов в Android и веб-версии приложения.Странно то, что изображение корректно всякий раз, когда я получаю изображение из imageURL, сгенерированного хранилищем Firebase.Любая помощь будет высоко оценена.

   func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
      let imageName = info[UIImagePickerControllerOriginalImage] as! UIImage
      dismiss(animated: true, completion: nil)
      DispatchQueue.main.async(execute: {
        self.imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
      })
   }

   func uploadImageOnStorage() { 
         // uploading image to firebase storage
          let metaData = StorageMetadata()
          metaData.contentType = "image/jpeg"
          let storageRef = storage.reference().child("Photos/\(self.timeStampString)")

          if let uploadImage = UIImageJPEGRepresentation(self.imageView.image!, 0.1){
                    storageRef.putData(uploadImage, metadata: metaData, completion: {(metadata, error) in
                        if error != nil{
                            // show alert
                        }
                        if let imageUrl = metadata?.downloadURL()?.absoluteString {
                        //upload imageUrl on firebase database
                        }
          }
   }                     

1 Ответ

0 голосов
/ 23 мая 2018

Возможно, вы слишком сильно сжимаете изображение при использовании UIImageJPEGRepresentation (self.imageView.image !, 0.1).Вы также можете повернуть изображение перед его загрузкой, что является быстрым и грязным исправлением.

let imageToUpload: UIImage = UIImage(cgImage: self.imageView .image.cgImage, scale: self.imageView.image.scale, orientation: .right)
...