首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过UIImagepickerController从摄像头中拾取图片并保存到ios相册中后,获取图片名称

通过UIImagepickerController从摄像头中拾取图片并保存到iOS相册中后,获取图片名称可以通过以下步骤实现:

  1. 首先,确保你的应用程序有相册访问权限。在Info.plist文件中添加NSPhotoLibraryUsageDescription键,并提供一个描述相册访问权限的字符串值。
  2. 在你的视图控制器中,创建一个UIImagepickerController实例,并设置其sourceType为UIImagePickerControllerSourceTypeCamera,表示从摄像头中获取图片。
  3. 实现UIImagepickerControllerDelegate协议中的方法,包括didFinishPickingMediaWithInfo和imagePickerControllerDidCancel方法。
  4. 在didFinishPickingMediaWithInfo方法中,获取选中的图片,并将其保存到相册中。可以使用UIImageWriteToSavedPhotosAlbum函数将图片保存到相册中。
  5. 获取保存到相册中的图片名称,可以使用PHAsset类和PHAssetCollection类来获取相册中的图片信息。可以通过PHAsset类的localIdentifier属性获取图片的唯一标识符,然后使用PHAssetCollection类的fetchAssetsWithLocalIdentifiers方法获取相应的PHAsset对象,最后使用PHAsset类的filename属性获取图片的名称。

以下是一个示例代码:

代码语言:txt
复制
import UIKit
import Photos

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    
    let imagePicker = UIImagePickerController()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        imagePicker.delegate = self
        imagePicker.sourceType = .camera
    }
    
    @IBAction func pickImageFromCamera(_ sender: UIButton) {
        present(imagePicker, animated: true, completion: nil)
    }
    
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        if let pickedImage = info[.originalImage] as? UIImage {
            UIImageWriteToSavedPhotosAlbum(pickedImage, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
        }
        
        dismiss(animated: true, completion: nil)
    }
    
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        dismiss(animated: true, completion: nil)
    }
    
    @objc func image(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer) {
        if let error = error {
            print("保存图片到相册失败:\(error.localizedDescription)")
        } else {
            // 获取保存到相册中的图片名称
            let fetchOptions = PHFetchOptions()
            fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
            
            let fetchResult = PHAsset.fetchAssets(with: .image, options: fetchOptions)
            if let asset = fetchResult.firstObject {
                let assetResources = PHAssetResource.assetResources(for: asset)
                if let filename = assetResources.first?.originalFilename {
                    print("保存到相册的图片名称:\(filename)")
                }
            }
        }
    }
}

在上述示例代码中,通过UIImagepickerController从摄像头中获取图片,并将其保存到相册中。然后,在保存图片的回调方法中,使用PHAsset和PHAssetCollection类获取保存到相册中的图片名称。

请注意,这只是一个简单的示例,实际应用中可能需要处理更多的错误情况和逻辑。另外,获取图片名称的方法可能因iOS版本而异,需要根据实际情况进行调整。

推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理图片等文件资源。产品介绍链接地址:https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券