【问题标题】:Image uploaded on firebase by iOS camera get rotated 90 degree left on Android and web由 iOS 相机上传到 Firebase 的图像在 Android 和 Web 上向左旋转 90 度
【发布时间】:2023-04-11 03:52:02
【问题描述】:

我正在开发需要将图像上传到 firebase 存储并且该图像的 URL 存储在 firebase 数据库中的应用程序。问题是每当我使用相机图像将图像上传到存储时,图像在 android 和 web 版本的应用程序中都会旋转 -90 度。 奇怪的是,每当我从 firebase 存储生成的 imageURL 获取图像时,图像都是正确的。任何帮助将不胜感激。

   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
                        }
          }
   }                     

【问题讨论】:

  • 这听起来像是EXIF数据的问题,我知道web中的图像标签不考虑exif数据,所以你必须自己做。我不知道安卓是如何工作的。 AFAIK Swift 将为您处理数据,并正确显示图像。这就是图像在这些平台上显示不同的原因。希望对您有所帮助。

标签: swift image firebase firebase-storage image-rotation


【解决方案1】:

这可能是您在使用 UIImageJPEGRepresentation(self.imageView.image!, 0.1) 时压缩了太多图像。您还可以在上传之前旋转图像,这是一个快速而肮脏的修复方法。

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

【讨论】:

    猜你喜欢
    • 2021-03-01
    • 2023-03-23
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多