iOS Swift 3 Image rotated 90 degrees Left

后端 未结 3 1360
北海茫月
北海茫月 2021-01-02 15:14

In my app I have a feature to take a picture from camera and upload it to server. My problem is that when I\'m getting response back from server that image is r

3条回答
  •  鱼传尺愫
    2021-01-02 15:50

    Try this (reset you image orientation) before you upload on server

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
    {
        self.PickerFrom = self.PickerFrom2
        if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage
        {
           self.AttachmentImageView.image = pickedImage
        }
        dismiss(animated: true, completion: nil)
    
        if let updatedImage = self.AttachmentImageView.image?.updateImageOrientionUpSide() {
          uploadGalleryImage(image: updatedImage)
        } else {
          uploadGalleryImage(image: self.AttachmentImageView.image!)
        }
    
    }
    
    func uploadGalleryImage( image:UIImage)
    {
        let imageData: NSData = UIImagePNGRepresentation(image)! as NSData
        let base64String = imageData.base64EncodedString(options: NSData.Base64EncodingOptions(rawValue: 0))
        self.AttachedDocumentURL = "data:image/png;base64,\(base64String)"
    }
    
    // Image extension
    extension UIImage {
    
        func updateImageOrientionUpSide() -> UIImage? {
            if self.imageOrientation == .up {
                return self
            }
    
            UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
            self.draw(in: CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height))
            if let normalizedImage:UIImage = UIGraphicsGetImageFromCurrentImageContext() {
                UIGraphicsEndImageContext()
                return normalizedImage
            }
            UIGraphicsEndImageContext()
            return nil
        }
    }
    

提交回复
热议问题