2017-05-04 2 views
0

Mon code prend une photo. Puis l'enregistre avec un effet de masquage appliqué dessus. Le seul problème est qu'il est sauvé à -90 de la façon dont je l'ai pris en photo. Tout ce que je veux faire est de prendre une photo en portrait et d'enregistrer la photo sans la rotation qui lui est appliquée.L'effet de masque est en rotation photo

[Enregistré Pic lorsque le masque est appliqué] [2]

[Masque] [3]

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 

    let red = info[UIImagePickerControllerOriginalImage] as! UIImage 
      self.dismiss(animated: true) 
//Sugguested Code 
    red.imageOrientation = UIDevice.current.orientation.imageOrientation 
// 


    self.currentImageView?.image = red 

    let image = photo.image 
     let maskingImage = UIImage(named: "mask") 
    photo.image = maskImage(image: image!, mask: maskingImage!) 
    photo.autoresizingMask = [.flexibleWidth, .flexibleHeight, .flexibleBottomMargin, .flexibleRightMargin, .flexibleLeftMargin, .flexibleTopMargin] 
    photo.contentMode = .scaleAspectFit 
    photo.clipsToBounds = true 

    } 
+0

Avez-vous besoin de prendre une image en portrait, puis d'appliquer un masque dessus, puis de l'enregistrer, mais l'image de votre résultat est en mode paysage? –

+0

Oui, c'est exactement ce qui se passe. –

+0

L'orientation du masque après l'enregistrement de l'image est-elle vraie ou non? –

Répondre

0

Lorsque vous créez votre est vous UIImage devez vous assurer que vous leur donnez l'orientation correcte. Ceci obtiendra l'orientation du téléphone et l'appliquera à l'image

extension UIDeviceOrientation { 
    public var imageOrientation: UIImageOrientation? { 
     switch self { 
     case .portrait: return .right 
     case .portraitUpsideDown: return .left 
     case .landscapeLeft: return .up 
     case .landscapeRight: return .down 
     default: return nil 
     } 
    } 
} 
image.imageOrientation = UIDevice.current.orientation.imageOrientation 
+0

Je pense que cela va fonctionner. Où dois-je appeler le "image.imageOrientation = UIDevice.current.orientation.imageOrientation". En vue a fait charger? –

+0

Où que vous créiez les images. – Spads

+0

Lorsque l'image est sauvegardée est dans func saveImage. Cela sélectionne l'emplacement de la photo à enregistrer. Est-ce là où il devrait aller? –