2017-05-04 30 views
0

我的代碼拍了一張照片。然後將其應用於其上的遮罩效果進行保存。唯一的問題是它從我拍攝人像照片的方向上被保存在-90。我想要做的只是拍攝一張肖像照片,然後將照片保存在旋轉的照片上。面膜效果是旋轉照片

[保存產品圖當面具被應用] [2]

[蒙] [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

你需要採取肖像一個圖像,然後上然後將其保存敷個面膜,但你的結果圖像保存景觀? –

+0

是的,這正是發生的事情。 –

+0

保存圖像後蒙版的方向是否爲真? –

回答

0

當您創建的UIImage的,你需要確保你給他們正確的方向。這將讓從手機的方向,並將其應用到圖像

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

我認爲這會奏效。我在哪裏可以調用「image.imageOrientation = UIDevice.current.orientation.imageOrientation」。鑑於沒有加載? –

+0

無論你在哪裏創建圖像。 – Spads

+0

圖像保存在func saveImage中。選擇要保存的照片的位置。是否應該去哪裏? –