2017-01-10 2 views
1

Ich arbeite mit Bildern zum ersten Mal und ich konnte ein Bild auswählen und es auf der Seite anzeigen. Meine Frage ist, wie kann ich den Namen des Bildes ausgewählt bekommen? Ich habe gesucht, konnte es aber nicht finden. Dieser Code unten Brände jedes Mal, wenn Sie ein Bild auswählenWie kann ich den Bildnamen bei der Auswahl eines Bildes bekommen

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

     photoImageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage 
     self.dismiss(animated: false, completion: nil) 
     let FileName = " Image Name of selected file" 
    } 

wo die photoImageView ist

var photoImageView = UIImageView(frame: CGRect(x: 82,y: 300,width: 100,height: 100)) 

ein kleines Imageview, die das ausgewählte Bild anzeigt, würde ich den Dateinamen wie jetzt bekommen irgendwelche Vorschläge wäre toll

+3

Bitte [Suche] (http://stackoverflow.com/search?q = uiimagepickercontroller + Bild + Name) vor dem Posten. – rmaddy

Antwort

4

Kurze Antwort: Sie können nicht. Das System gibt Ihnen nicht den Benutzernamen für die Datei. Ich erinnere mich auch daran.

Wie ich erinnere, was es gibt, ist ein Zeiger auf ein In-Memory-UIImage-Objekt, nicht einmal eine URL zu einem System namens Datei auf der Festplatte. (Aber es ist schon eine Weile her, seit ich das Bild Picker verwendet habe.)

+1

Nicht ganz. Sie können die URL für ein Bild aus der Fotobibliothek abrufen. Diese URL wird natürlich einen Dateinamen als Teil der URL haben. Es ist nicht wirklich ein aussagekräftiger Dateiname, aber Sie können es bekommen, wenn es wirklich benötigt wird. – rmaddy

+0

@rpaddy, danke für die Korrektur. Ich konnte mich nicht sicher erinnern. In jedem Fall können Sie keinen * aussagekräftigen * Dateinamen erhalten ... –

0

Mit Photos API (PHAsset & PHAssetResource) Sie können ausgewählten Dateinamen des Bildes erhalten UIImagePickerController verwenden. Ich postete die Lösung in this question.

+0

Aber ist es der Name des Benutzers oder ein beliebiger Dateiname? –

+0

@DuncanC Es ist ein beliebiger Name, der vom Betriebssystem zugewiesen wird, z. IMG_xxxx.JPG – Yaiba

0

Von iOS 11.0 ab führten sie einen neuen Schlüssel in info Wörterbuch PHAsset aufgenommenem Bild zu erhalten, können Sie dies versuchen:

func imagePickerController(_ picker: UIImagePickerController,didFinishPickingMediaWithInfo info: [String : Any]) { 
if let photoAsset = info[UIImagePickerControllerPHAsset] as? PHAsset { 
    if let fileName = photoAsset.value(forKey: "filename") ?? "nonamefound"} 
Verwandte Themen