2017-01-10 18 views
1

初めて画像を扱っているので、画像を選択してページに表示することができました。私の質問は、選択した画像の名前を取得する方法です。私は周りを探索していましたが、それを見つけることができませんでした。以下このコードは、画像画像を選択するときに画像名を取得する方法

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" 
    } 

photoImageViewが

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

選択した画像を表示する小さなImageViewのであり、私は今、何か提案は素晴らしいことだファイル名を取得したいと思いを選択するたびに発射します

+3

してください[検索](http://stackoverflow.com/search?q:iOSの11.0から – rmaddy

答えて

4

短い回答:できません。システムはあなたにファイルのユーザー名を与えません。私はこれについても困惑していることを覚えています。

私はそれがメモリ内のUIImageオブジェクトへのポインタであり、ディスク上のシステム名付きファイルへのURLではないことを思い出しています。 (私はイメージピッカーを使用しましたので、しかし、それはしばらくしている。)

+1

写真ライブラリから選択した画像のURLを取得できます。そのURLはもちろん、URLの一部としてファイル名を持ちます。それは本当に意味のあるファイル名ではありませんが、本当に必要な場合はそれを得ることができます。 – rmaddy

+0

@rmaddy、訂正していただきありがとうございます。私は確かに覚えていない。いずれにせよ、*意味のある*ファイル名を得ることはできません... –

0

Photos API(PHAsset & PHAssetResource)あなたはUIImagePickerControllerを使用して、選択した画像のファイル名を取得することができますを使用します。 this questionに解決策を掲載しました。

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

しかし、それはユーザーの名前か任意のファイル名ですか? –

+0

@DuncanCオペレーティングシステムによって割り当てられた任意の名前です。 IMG_xxxx.JPG – Yaiba

0

以降は彼らが選んだ画像のPHAssetを取得し、あなたはこれを試すことができますするには、info辞書に新しいキーを導入しました= uiimagepickercontroller + image + name)を入力してください。
関連する問題