Ich schreibe eine Swift App für iOS. Ich möchte wissen, wie man ein Bild von der Kamerarolle des Benutzers (oder wie auch immer sie es in diesen Tagen nennt) erstellt und es lokal in der App speichert, damit ich später darauf verweisen kann. Wie sollte man das machen? Nehmen wir als Beispiel an, dass ich das Bild als Bild für eine UIImageView in meinem Storyboard abrufen möchte.iOS & Swift - Wie kann ich ein UIImage vom Benutzer erhalten und speichern?
Antwort
Dies ist genau das, was UIImagePickerController
kombiniert mit NSUserDefaults
tun wird.
Für Sie wird es eine zweiteilige Aufgabe sein. Zuerst müssen Sie das Bild mit einem UIImagePickerController
erfassen und dann entweder in der Fotobibliothek speichern oder mit NSUserDefaults
auf dem Gerät speichern.
Um ein Bild mit NSUserDefaults
zu speichern, siehe this question.
Ray Wenderlich hat eine great tutorial für die Verwendung einer UIImagePickerController
, um ein Bild auszuwählen und dann mit der AssetsLibrary
in ein Album speichern.
Es gibt auch Informationen zur Verwendung von Bildfiltern, die mehr sind, als Sie im Lernprogramm gefordert haben.
Ich bekomme diesen Fehler. http://postimg.org/image/gcfwet8uf/ – quillford
Die einzige Möglichkeit, die ich nicht konform mit dem UIImagePickerControllerDelegate ist, ist nicht konform zu UINavigationControllerDelegate. Der UIPicker benötigt einen Nav-Controller. –
Sobald Sie das UIImage-Objekt zu erhalten, können Sie das Bild in einem doc dir mit dem folgenden Code speichern
let imageData = NSData(data:UIImagePNGRepresentation(wineImage.image))
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
var docs: String = paths[0] as! String
let fullPath = docs.stringByAppendingPathComponent("yourNameImg.png")
let result = imageData.writeToFile(fullPath, atomically: true)
Sie auf jeden Fall ein UIImagePickerController
als Brian erwähnte verwenden soll, wenn Sie das ausgewählte Bild diese Datei haben Manageransatz. Ich empfehle NSUserDefaults
nicht mit Bildern zu speichern, wie es gegen Apple guidelines geht:
let imageData = UIImagePNGRepresentation(selectedImage)
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let imagePath = paths.stringByAppendingPathComponent("cached.png")
if !imageData.writeToFile(imagePath, atomically: false)
{
println("not saved")
} else {
println("saved")
NSUserDefaults.standardUserDefaults().setObject(imagePath, forKey: "imagePath")
}
Hier meine Kombination ist.
Speichern von Bild:
let imageData = NSData(data:UIImagePNGRepresentation(pickedimage))
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
var docs: String = paths[0] as! String
let fullPath = docs.stringByAppendingPathComponent("yourNameImg.png")
let result = imageData.writeToFile(fullPath, atomically: true)
print(fullPath)
Get Image:
let nsDocumentDirectory = NSSearchPathDirectory.DocumentDirectory
let nsUserDomainMask = NSSearchPathDomainMask.UserDomainMask
if let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)
{
if paths.count > 0
{
if let dirPath = paths[0] as? String
{
let readPath = dirPath.stringByAppendingPathComponent("yourNameImg.png")
let image = UIImage(contentsOfFile: readPath)
UploadImagePreview.image = image
}
}
}
Wir können mit Fotos Rahmen versuchen, das letzte gespeicherte Bild zu holen.
var fetchOptions: PHFetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
var fetchResult = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: fetchOptions)
if (fetchResult.firstObject != nil) {
var lastAsset: PHAsset = fetchResult.lastObject as! PHAsset
PHImageManager.defaultManager().requestImageForAsset(lastAsset, targetSize: self.UploadImagePreview.bounds.size, contentMode: PHImageContentMode.AspectFill, options: PHImageRequestOptions(), resultHandler: { (result, info) -> Void in
self.UploadImagePreview.image = result
})
}
UIImage (contentsOfFile :) funktioniert nicht –
@ Rodrigo: Es funktioniert nur, wenn ein vollständiger Pfad des Bildes angegeben wird. –
- 1. Wie kann ich die vom Benutzer eingegebenen unvollständigen Daten speichern?
- 2. iOS Swift: Wie verkleinere ich ein Bild?
- 3. Wie kann ich ein UIImage in einem NSDictionary speichern?
- 4. Problem beim Drehen UIImage - IOS/Swift
- 5. iOS Swift MapKit macht eine Anmerkung vom Benutzer ziehbar?
- 6. CoreData Swift: Wie kann ich Daten speichern und laden?
- 7. App-Gruppen und UIImage Swift
- 8. Durchschnittliche Farbe von UIImage in Swift erhalten
- 9. Facebook iOS SDK und swift: wie Benutzer Profilbild
- 10. Lua - Befehlszeileneingabe vom Benutzer erhalten?
- 11. Wie kann ich eine Twitter Fabric-Anmeldesitzung (iOS/Swift) speichern und darauf zugreifen?
- 12. iOS Swift: Benutzer Standort anfordern
- 13. iOS-Diagramme Wie setze ich UIImage neben einen Punkt
- 14. Systemverfügbarkeit in iOS/Swift erhalten
- 15. Wie kann ich auf ios/swift
- 16. Speichern der Anwendung in ios mit Swift
- 17. Wie gebe ich ein Ganzzahl-Tupel vom Benutzer ein?
- 18. CIImage von UIImage (Swift)
- 19. ios swift - unveröffentlichter Speicher beim Anhängen von uiimage an Array
- 20. Umgang mit NSData und Rückgabe UIImage (Swift)
- 21. Ein Bild vom Benutzer auf dem iPhone speichern?
- 22. UIImage and resizableImageWithCapInsets Swift
- 23. Wie erhalte ich Exif-Daten vom lokalen Image mit Swift?
- 24. Wie ändere ich die Farbe von UIImage in iOS?
- 25. überprüfen, ob Benutzer in ios swift angemeldet
- 26. Wie Bild von Images.xcassets in ein UIImage mit swift
- 27. Drehen UIImage in swift
- 28. Was ist der Unterschied zwischen UIImage (benannt :) und UIImage (imageLiteralResourceName :)?
- 29. Facebook SDK 4.0 IOS Swift Log ein Benutzer aus programmatisch
- 30. Wie kann ich vom Jawbone UP iOS SDK tief schlafen?
Suchen ALAssetsLibrary – Abizern
Ich denke, diese Verbindung wird Ihnen helfen, eine Menge [überprüfen hier] [1] [1]: http://stackoverflow.com/questions/25730830/how- to-get-only-images-in-der-kamera-rollen-mit-fotos-framework –