2017-02-07 4 views
3

Wenn ich das Bild vor dem Speichern verwende, ist es normal. Aber wenn ich es speichere und später benutze ist es um 90 Grad gedreht. Wie kann ich sicherstellen, dass es nicht seitlich spart?Swift PNG Bild wird mit falscher Ausrichtung gespeichert

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

Verwenden Sie einfach JPEG und Ihre Rotation wird in Ordnung sein –

+0

wie kann ich tun, dass @LeoDabus – Steve

+0

ja oder als JPEG @LeoDabus speichern – Steve

Antwort

6

Wenn Sie Ihre PNG mit der richtigen Drehung zu speichern, müssen Sie Ihr Bild neu zu zeichnen, wenn seine Ausrichtung nicht .up ist. Sie können es wie folgt neu zu zeichnen:

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() 
    } 
} 
Verwandte Themen