2017-03-21 12 views
0

Ich versuche eine Anwendung in xcode 8 swift 3 zu erstellen, wo der Benutzer ein Bild mit einem imagePickerController hinzufügt, wenn der Benutzer entweder speichern oder den imagePickerController beendet, möchte ich das Bild lokal gespeichert, so beim nächsten Mal die App geladen wird (Zum Beispiel nach einem Neustart des Geräts) das Bild ist da. Nur um klar zu sein, möchte ich das Bild nicht auf der Kamerarolle speichern. Hier ist mein Code bisher ohne irgendwelche Speicher- oder Lade-Methoden, (nur die Speichern-Taste-Referenz) jede Hilfe wäre sehr geschätzt, da ich versucht habe, dies für eine lange Zeit zu tun.Wie speichere und lade ich ein Bild in einem UIImageView?

import UIKit 


class timetable: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate { 

@IBOutlet var imageviewtimetable: UIImageView! 


@IBAction func save(_ sender: Any) { 


} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

@IBAction func selectImageFromPhotoLibrary(_ sender: Any) { 

    let imagePickerController = UIImagePickerController() 
    imagePickerController.sourceType = .photoLibrary 
    imagePickerController.delegate = self 
    present(imagePickerController, animated: true, completion: nil) 


} 



func imagePickerControllerDidCancel(_ picker: UIImagePickerController){ 
    dismiss(animated: true, completion:nil) 
} 


func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

    let selectedImage = info[UIImagePickerControllerOriginalImage] as! UIImage 
    imageviewtimetable.image = selectedImage 

    dismiss(animated: true,completion:nil) 
} 





} 
+0

Sie können es auf 'NSUserDefaults' sparen: http://stackoverflow.com/a/6648563/188331, wenn es nicht eine gute Methode. Erklärung & bessere Lösung [hier] (http://stackoverflow.com/a/32793289/188331) – Raptor

Antwort

1

Für Informationen: click here

Bild speichern in Dokumentenverzeichnis

func saveImageDocumentDirectory(){ 
    let fileManager = NSFileManager.defaultManager() 
    let paths = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString).stringByAppendingPathComponent("apple.jpg") 
    let image = UIImage(named: "apple.jpg") 
    print(paths) 
    let imageData = UIImageJPEGRepresentation(image!, 0.5) 
    fileManager.createFileAtPath(paths as String, contents: imageData, attributes: nil) 
} 

Get Document Verzeichnispfad

func getDirectoryPath() -> String { 
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 
let documentsDirectory = paths[0] 
return documentsDirectory 

}

bekommen Bild fro m Dokumentenverzeichnis

func getImage(){ 
    let fileManager = NSFileManager.defaultManager() 
    let imagePAth = (self.getDirectoryPath() as NSString).stringByAppendingPathComponent("apple.jpg") 
    if fileManager.fileExistsAtPath(imagePAth){ 
     self.imageView.image = UIImage(contentsOfFile: imagePAth) 
    }else{ 
     print("No Image") 
    } 
} 

Verzeichnis erstellen

func createDirectory(){ 
    let fileManager = NSFileManager.defaultManager() 
    let paths = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString).stringByAppendingPathComponent("customDirectory") 
    if !fileManager.fileExistsAtPath(paths){ 
     try! fileManager.createDirectoryAtPath(paths, withIntermediateDirectories: true, attributes: nil) 
    }else{ 
     print("Already dictionary created.") 
    } 
} 
+1

Downvoted für Copypasting von externer URL ohne korrekte Zuordnung zum Ersteller. https://iosdevcenters.blogspot.com/2016/04/save-and-get-image-from-document.html Veröffentlichen Sie keinen Code von Drittanbieter-Websites ohne Urheber- und Attributinformationen. Verwenden Sie den Kommentarbereich und verknüpfen Sie stattdessen das OP mit der Quelle. –

+0

ist es in Ordnung? Herr Sneak – nick

+0

Ja :) Ich habe Sie neu eingestellt. Editiere es und tippe "Genommen von dieser Quelle:" –

Verwandte Themen