【问题标题】:How can I get the image name when selecting an image选择图像时如何获取图像名称
【发布时间】:2017-01-10 21:58:30
【问题描述】:

我是第一次使用图像,我已经能够选择图像并将其显示在页面上。我的问题是如何获得所选图像的名称?我一直在四处寻找,但一直找不到。每次选择图像时都会触发以下代码

 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,我现在想获取 FileName 任何建议都会很棒

【问题讨论】:

标签: ios swift swift3 uiimagepickercontroller


【解决方案1】:

简短的回答:你不能。系统不会为您提供文件的用户名。我记得我也对此感到困惑。

我记得它给你的是一个指向内存中 UIImage 对象的指针,甚至不是指向磁盘上系统命名文件的 URL。 (但我已经有一段时间没有使用图像选择器了。)

【讨论】:

  • 不完全。您可以获取从照片库中选择的图像的 URL。该 URL 当然会有一个文件名作为 URL 的一部分。这不是一个真正有意义的文件名,但如果真的需要,你可以得到它。
  • @rmaddy,感谢您的更正。我记不清了。在任何情况下,您都无法获得有意义的文件名...
【解决方案2】:

使用Photos API (PHAsset & PHAssetResource),您可以获得使用UIImagePickerController 选择的图像的文件名。我在this question 中发布了解决方案。

【讨论】:

  • 但它是用户名还是任意文件名?
  • @DuncanC 这是操作系统分配的任意名称,例如IMG_xxxx.JPG
【解决方案3】:

从 iOS 11.0 开始,他们在信息字典中引入了一个新键来获取拾取图像的 PHAsset,你可以试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多