UIImage zu NSData für die Kern-Daten in Swift 3.0
Also zuvor, im Swift-2.2, die ich verwenden könnte Entity.image = UIImagePNGRepresentation(UIImage(named: "Image Name")!)
Aber jetzt in Swift 3.0 es scheint, dass wir jetzt um eine zusätzliche Schritt. Entity.image = NSData(data: UIImagePNGRepresentation(UIImage(named: "Image Name")!))
Oder das Objekt entspricht UIImage(name: "Image Name")
Gibt es einen neuen Weg für Swift 3.0 gehen von UIImage
zu NSData
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Für die sichere Ausführung von code, zu verwenden, wenn-lassen Sie den block mit Daten, als Funktion UIImagePNGRepresentation gibt, optionaler Wert.
Generic-Bild-Operationen (wie png & jpg beide):
Durch die Verwendung von extension:
Für Swift 4, es ist viel einfacher:
Natürlich, Kompression Qualität ist eine variable, die Sie gesetzt. 0 für die meisten Kompression und 1 für den geringsten Komprimierung.
Mit UIImagePNGRepresentation zu konvertieren
UIImage
zuData
kann manchmal dazu führen, verzerrte Bilder, wenn Sie konvertieren die Daten wieder, da einige wichtige Metadaten werden aus den ursprünglichen Daten entfernt, die in dem ersten Umbau.Nach einigen Recherchen landete ich mit dem folgenden code zu konvertieren
UIImage
zuData
:Verwenden Sie PNG-oder JPG-image als Daten.
PNG
selbst.imgProfilePic.Bild!.pngData()
JPEG
selbst.imgProfilePic.Bild!.jpegData(compressionQuality: 1.0) //Qualität min = 0.0 max = 1.0
Den Einsatz als Erweiterung zu bekommen, PNG-oder JPG-Bilddaten als NSData.