2017-02-07 5 views
3

이미지를 저장하기 전에 사용하면 정상입니다. 그러나 그것을 저장하고 나중에 사용하면 90도 회전합니다. 나는 그것이 옆으로 저장하지 않도록 어떻게 할 수 있습니까?Swift PNG 이미지가 잘못된 방향으로 저장 됨

func saveEvent(_ center1: CLLocation, title2: String, imagePicked1: UIImage) 
    { 
     let data = UIImagePNGRepresentation(imagePicked1);/// 
     let url = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(NSUUID().uuidString+".dat") 
     do { 
      try data!.write(to: url!, options: []) 
     } catch let e as NSError { 
      print("Error! \(e)"); 
      return 
     } 
     let image11 = CKAsset(fileURL: url!) 

     self.eventRecord.setObject(image11 as CKAsset, forKey: "Picture") 
     let publicData = CKContainer.default().publicCloudDatabase 
      publicData.save(self.eventRecord, completionHandler: { record, error in 
       if error == nil 
       { 
        print("Image saved") 
       }else{ 
        print(error!) 
       } 
     }) 
    } 
+0

그냥 –

+0

내가 할 수있는 방법을 @LeoDabus – Steve

+0

예 또는 JPEG @LeoDabus – Steve

답변

6

당신이 그 방향은 .up가없는 경우 이미지를 다시 그릴 필요가 올바른 회전하여 PNG를 저장해야합니다.

extension UIImage { 
    var png: Data? { 
     guard let flattened = flattened else { return nil } 
     return UIImagePNGRepresentation(flattened) 
    } 
    var flattened: UIImage? { 
     if imageOrientation == .up { return self } 
     UIGraphicsBeginImageContextWithOptions(size, false, scale) 
     defer { UIGraphicsEndImageContext() } 
     draw(in: CGRect(origin: .zero, size: size)) 
     return UIGraphicsGetImageFromCurrentImageContext() 
    } 
}