首页
学习
活动
专区
工具
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

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

相关·内容

iOS摄像头和相册-UIImagePickerController

本文参考自:http://blog.sina.com.cn/s/blog_7b9d64af0101cfd9.html 在原文的基础上,增加了存储图片到app和app存储读取图片。...---- 引 在一些应用,我们需要用到iOS设备的摄像头进行拍照,视频。并且相册中选取我们需要的图片或者视频。...关于iOS摄像头和相册的应用,可以使用UIImagePickerController类来完成控制。 iOS的一些设备上都安装了摄像头。现在绝大多数都有了。...*)picker{ [picker dismissModalViewControllerAnimated:YES]; } 四、相册获取图片和视频数据 1、我们将功能封装在一个按钮的点击事件...app中和app读取图片 1、把选择的图片存储到app NSString *imagePath = [[NSHomeDirectory() stringByAppendingPathComponent

73410

iOS使用UIImagePickerController调用系统相机、相册与图库

iOS使用UIImagePickerController调用系统相机、相册与图库 一、引言         UIImagePickerController是系统封装好的一个导航视图控制器,使用其开发者可以十分方便的进行相机相册相关功能的调用...UIImagePickerController继承于UINavigationController,其通过代理的方式将用户获取图片或者视频文件传入给开发者。...二、UIImagePickerController属性与方法的应用         在使用UIImagePickerController之前,应该先判断设备做支持的媒体文件获取类型,使用如下方法进行判断..._0, 3_0); //相机录像或者图库相册选择视频完成触发的回调方法 info字典是具体信息 - (void)imagePickerController:(UIImagePickerController...*)picker; 上面方法的编辑字典与信息字典,约定好了一些键值对,开发者可以通过相应的键获取需要的信息,规则如下: //这个键对应NSString类型的值 意义为媒体文件的格式 UIKIT_EXTERN

2.4K10
  • iOS,系统相册的那些事

    获取相册最直接的方式——UIImagePickerController 功能介绍:可直接显示分组的相处的列表,用户选择不同相册的照片,可在委托方法获得该图片对象; API提供三种数据源: UIImagePickerControllerSourceTypeCamera...成员介绍: 1.ALAssetsGroup:映射照片库(ALAssetsLibrary)的一个相册通过ALAssetsGroup可以获取相册相应的信息,以及获取到对应相册下的所有图片资源; 2....ALAsset:对应相册的一张图片或者一个视频,并且包含对应图片和视频的详细信息,可获取图片对应的缩略图,还可通过ALAsset的实例方法保存图片和视频; 3.ALAssetRepresentation...通过ALAssetRepresentation可以获取ALAsset的原图、全屏图、文件名等信息; 自定义行相册的思路 1.实例化照片库,获取所有的相册; 2.展示相册的所有照片,可自义展示样式,多以集合视图的形式展现...,也可以是一个【智能相册】(系统提供的一系列相册集合,包括最近删除、相机相册、最爱相册等等)的一个; 4.PHFetchResult:表示一系列资源结果的集合,也可以是相册资源集合,一般情况下,可以

    1.4K40

    iOS,系统相册的那些事

    获取相册最直接的方式——UIImagePickerController 功能介绍:可直接显示分组的相处的列表,用户选择不同相册的照片,可在委托方法获得该图片对象; API提供三种数据源: UIImagePickerControllerSourceTypeCamera...成员介绍: 1.ALAssetsGroup:映射照片库(ALAssetsLibrary)的一个相册通过ALAssetsGroup可以获取相册相应的信息,以及获取到对应相册下的所有图片资源;...2.ALAsset:对应相册的一张图片或者一个视频,并且包含对应图片和视频的详细信息,可获取图片对应的缩略图,还可通过ALAsset的实例方法保存图片和视频; 3.ALAssetRepresentation...通过ALAssetRepresentation可以获取ALAsset的原图、全屏图、文件名等信息; 自定义行相册的思路 1.实例化照片库,获取所有的相册; 2.展示相册的所有照片,可自义展示样式...,一般情况下,可以PHCollection或PHAsset的类方法获取; 5.PHImageManager:用于处理资源的加载,图片加载的过程带有缓存处理; 6.PHImageRequestOptions

    1.1K20

    iOS开发——头像设置及本地沙盒保存,圆形头像显示

    今天来讲一讲iOS实际开发,对于头像的应用。 现在的APP,对于头像的设置,我们大多采用圆形头像,并且需要支持照相机获取或者相册中选择用户需要的头像,并且保存在本地或者服务器。...暂时我还是把代码保存到了沙盒文件里,代码中大家也可以很方便的把存储在服务器里的头像图片集成进来。 在 HeadsPicture.m ,代码如下。...因为是 照相机 或者 相册 来读取照片,需要使用 UIImagePickerController"图像选择器" 。...实现协议 UIImagePickerDelegate定义的委托方法可以对选定的结果进行操作,或是没有选择取消的操作。 具体代码如下: 首先我们先要确定、用户需要使用相册还是摄像头来直接拍摄头像。..."]; //将照片放入UIImageView对象 self.avatarImage.image = image; //把一张照片保存到图库,此时无论是这张照片是照相机拍的还是本身图库取出的

    1.7K30

    IOS 图片上传处理 图片压缩 图片处理

    提到摄像头/相册获取图片是面向终端用户的,由用户去浏览选择图片为程序使用。在这里,我们需要过UIImagePickerController类来和用户交互。...View Code 代码如下复制代码 pragma mark 用户相册获取活动图片 (void)pickImageFromAlbum { imagePicker = [[UIImagePickerController...imagePicker.allowsEditing =YES; [self presentModalViewController:imagePicker animated:YES]; } 我们来看看上面的相册获取图片...View Code 代码如下复制代码 pragma mark 摄像获取活动图片 (void)pickImageFromCamera { imagePicker = [[UIImagePickerController...,和相册获取图片只是图片来源的设置不一样,摄像图片的来源为UIImagePickerControllerSourceTypeCamera。

    5.5K10

    iOS 开发实践:iOS照片API的那些坑

    在对系统相册做一系列复杂操作,有时会把系统assetsd进程搞挂,如果这时再回到app内调用Photos相关的API,就会出现异常现象,比如卡住,或者crash。...同步的照片,以及iCloud照片流上的照片,所以如果你的照片被传到照片流上去通过这两个API返回的相册列表里会有两份相同的照片。...所以,推荐直接iOS 9开始支持,如果不行的话,推荐至少iOS 8.1开始支持(当然更合理的是8.4开始支持,这样升级不到iOS 9的手机也有机会使用上)。...API,我们可以获取到各种尺寸的图片。...但事实上很多图片类APP通过修改图片的接口起到删除图片的作用,即通过ALAsset的接口直接删除图片。 ?

    2.8K40

    如何快速定位、分析、解决非Crash的BUG(iOS 11篇)

    正文 iOS 11裁剪图片偏移问题 功能背景: 用户本地相册选择图片,然后裁剪一个正方形区域,最后生成用户头像。...Bug定位: 用模拟器进行复现,断点在UIImagePickerController的回调方法,再用Xcode查看实际的返回参数和图片。...iOS 11图像放大闪烁问题 功能背景: 用户点击圆形头像,头像会放大到等同屏幕宽度,并且圆形展示变成正方形展示。...在模型树=>呈现树=>渲染树这条链路上,开发者通过代码层面上只能获取到前两个环境的数据,至此问题停止深入。...下拉刷新 功能实现: 通过KVO监听tableView的属性,判断具体的操作,最终通过自定义的dragDelegate回调。

    2.4K50

    iphone 相册权限没办法开启_苹果请求访问App将在此处显示

    一:打开相册不提示用户权限 问题描述:iOS11已经在plist文件写了相关权限设置,但是在使用UIImagePickerController打开相册的时候却不提示用户选择权限,有以下几条情况: UIImagePickerController...同样的设置使用相机会有权限选择提示,设置也没有关于相册的设置; 项目中有用到TZImagePickerController的第三方库多选照片,他在进入图库的时候就会有权限提示,设置关于相册的权限是:...读与写; 将图片保存进手机相册会有权限提醒,设置关于相册的权限是:写入; 带着以上疑问我看了TZImagePickerController的源码,发现他其实是在发现PHAuthorizationStatus...,需要自己通过判断确定,TZImagePickerController的处理办法如下,当然也可以自己在权限设置的block里面设置 //下判断权限,如果没有权限就会先展示一个自定义的页面,然后开始定时器来判断是否已经获取权限...,如果获取到权限则跳转到选择图片页面 if (!

    1.2K30

    iOS开发】Connection to assetsd was interrupted or assetsd died

    iOS开发通过 UIImagePickerController 获取系统相册的照片的 URL 并不非常的直观。 StackOverFlow 上面的相关问题基本都指向了下面这个方法: ?...示例代码 即,import AssetsLibrary 之后,在 imagePickerController 的方法通过 ALAssetsLibrary 的 writeImageToSavedPhotosAlbum...方法,在闭包获取assetURL,而值得注意的是,有不少人在这里出现了内存管理的问题(循环引用),最终导致控制台输出如下。...错误代码 这里虽然我们是以获取URL为目的,但是把选中的图片写入系统相册也是必须的,而这一步的 CGImage 参数必须由 UIImage.CGImage 获得,而不能是用 as!...在 writeImageToSavedPhotosAlbum 这个方法,CGImage 参数和最后的闭包参数都是可以写成nil通过编译的,但是前者写成nil会造成这个方法不能被成功执行,后面的闭包是我们获取

    1.5K10

    为什么不推荐使用PHPicker

    PHPicker iOS 14 系统新增了一个图片选择器 PHPicker,官方建议使用 PHPicker 来替代原有的 API 进行图片选择,下面我们来看看 PHPicker 的优点: 支持多选 支持搜索...新增权限 iOS 14 相册新增了一个 “Limited Photos Library” 模式,在授权时多了一个 “选择照片” 的选项。...我们需要在 Info.plist 添加 PHPhotoLibraryPreventAutomaticLimitedAccessAlert 字段,设置为 YES,设置系统将不再弹出访问提示。...同时我们会监听相册的变化,当用户修改授权的照片,会立即刷新相册,用户可以继续进行选择照片的流程。...监听相册变化 配合手动调用 PHPickerController,我们还需要监听用户添加/删除了哪些照片。 注意: 这组 API 并不是新出的, iOS 8 开始就支持了。

    2.6K40

    iOS14的PHPicker

    PHPicker iOS 14 系统新增了一个图片选择器 PHPicker,官方建议使用 PHPicker 来替代原有的 API 进行图片选择,下面我们来看看 PHPicker 的优点: 支持多选 支持搜索...新增权限 iOS 14 相册新增了一个 “Limited Photos Library” 模式,在授权时多了一个 “选择照片” 的选项。...我们需要在 Info.plist 添加 PHPhotoLibraryPreventAutomaticLimitedAccessAlert 字段,设置为 YES,设置系统将不再弹出访问提示。...同时我们会监听相册的变化,当用户修改授权的照片,会立即刷新相册,用户可以继续进行选择照片的流程。...监听相册变化 配合手动调用 PHPickerController,我们还需要监听用户添加/删除了哪些照片。 注意: 这组 API 并不是新出的, iOS 8 开始就支持了。

    3.6K30

    iOS开发照片框架详解(一)-- AssetsLibrary

    fullResolutionImage 是图片的原图,通过 fullResolutionImage 获取图片没有任何处理,包括通过系统相册“编辑”功能处理的信息也没有被包含其中,因此需要展示“编辑...因此这里建议获取图片的 fullScreenImage,它是图片的全屏图版本,这个版本包含了通过系统相册“编辑”功能处理的信息,同时也是一张缩略图,但图片的失真很少,缺点是图片的尺寸是一个适应屏幕大小的版本...系统相册的处理过程大概也是如上,可以看出,在整个过程并没有使用到图片的 fullResolutionImage,相册列表展示到最终查看资源,都是使用缩略图,这也是 iOS 相册加载快的一个重要原因。...AssetsLibrary 实例需要强引用 实例一个 AssetsLibrary ,如上面所示,我们可以通过一系列枚举方法获取到需要的相册和资源,并把其储存到数组,方便用于展示。...但是,当我们把这些获取到的相册和资源储存到数组时,实际上只是在数组中储存了这些相册和资源在 AssetsLibrary 的引用(指针),因而无论把相册和资源储存数组如何利用这些数据,都首先需要确保

    1.6K70
    领券