调用相册中的图片并在iOS App中获取最新图片以开始IOS开发的方法

电脑杂谈  发布时间:2020-04-03 07:12:12  来源:网络整理

ios 相册获取照片路径_ios 打开相册获取图片_ios 获取相册所有图片

本文将向您展示如何调用相册中的图片以及如何在iOS App中获取最新图片. 希望本文对所有人都有帮助.

UIImagePickerController从照片,画廊和相册中获取图片

有三种方法可以在iOS中获取图片:

1. 直接调用相机拍照

2. 从相册中选择

3. 从图库中选择

UIImagePickerController是系统提供的用于获取图片和视频的接口;

使用UIImagePickerController类获取图片和视频,它大致分为以下步骤:

1. 初始化UIImagePickerController类;

2. 设置UIImagePickerController实例的数据源类型(如下所述);

3. 设置代理;

4. 如果需要修改图片,请设置allowEditing = yes.

共有三种类型的数据源:

按如下所示复制代码:

枚举{

UIImagePickerControllerSourceTypePhotoLibrary,//来自画廊

UIImagePickerControllerSourceTypeCamera,//来自摄像机

UIImagePickerControllerSourceTypeSavedPhotosAlbum //来自相册

};

使用这些资源时,最好检查以下设备是否支持它;

按如下所示复制代码:

如果([UIImagePickerControllerisSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])

{

NSLog(@“支持”);

}

如果([UIImagePickerControllerisSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary])

{

ios 获取相册所有图片_ios 打开相册获取图片_ios 相册获取照片路径

NSLog(@“支持库”);

}

如果([UIImagePickerControllerisSourceTypeAvailable: UIImagePickerControllerSourceTypeSavedPhotosAlbum])

{

NSLog(@“支持图片库”);

}

呼叫相机以获取资源

按如下所示复制代码:

-(无效)viewDidLoad {

[superviewDidLoad];

picker = [[UIImagePickerControlleralloc] init];

picker.view.backgroundColor = [UIColororangeColor];

UIImagePickerControllerSourceTypesourcheType = UIImagePickerControllerSourceTypeCamera;

picker.sourceType = sourcheType;

picker.delegate =自我;

picker.allowsEditing = YES;

}

以上只是UIImagePickerController及其属性的示例,需要图片时需要调用它.

按如下所示复制代码:

[selfpresentViewController: pickeranimated: YEScompletion: nil];

我们还需要一个代理来获取我们选择的图像

UIImagePickerControllerDelegate

代理中共有三种方法,其中一种已弃用,我们只需要使用其中两种

按如下所示复制代码:

-(无效)imagePickerController: (UIImagePickerController *)pickerdidFinishPickingMediaWithInfo: (NSDictionary

*)信息;

在用户选择时调用;

ios 相册获取照片路径_ios 打开相册获取图片_ios 获取相册所有图片

按如下所示复制代码:

-(void)imagePickerControllerDidCancel: (UIImagePickerController *)选择器;

在用户取消选择时调用;

按如下所示复制代码:

-(无效)imagePickerController: (UIImagePickerController *)选择器

didFinishPickingMediaWithInfo: (NSDictionary *)info;

所选信息在info中,而info是字典.

字典中的键:

NSString * constUIImagePickerControllerMediaType;指定用户选择的媒体类型(在文章末尾进行扩展)

NSString * constUIImagePickerControllerOriginalImage;原始图片

NSString * constUIImagePickerControllerEditedImage;修改后的图片

NSString * constUIImagePickerControllerCropRect;作物大小

NSString * constUIImagePickerControllerMediaURL;媒体网址

NSString * constUIImagePickerControllerReferenceURL;原始网址

NSString * constUIImagePickerControllerMediaMetadata;该值仅在数据源是摄像机时有效

获取最新图片

最近的要求要求我模仿微信聊天功能的最新图片.

首先讨论想法.

这个想法很简单. 当您单击“ +”号时,您可以获取相册列表并获取最新保存的图片. 根据图像保存时间,使用当前时间戳计算间隔. 为了确定是否是所需的时间间隔. (时间间隔自定义)

计算公式: 当前时间图片保存时间<=时间间隔

然后根据此想法开始编写类别.

这与ALAssetsLibrary的获取功能有关,因此请按照他的要求写一个类别.

但是该库在iOS9之后已经过时了,但仍被打包,然后将改编新的工具类.

按如下所示复制代码:

// ALAssetsLibrary + WJ.h

#import

@interfaceALAssetsLibrary(WJ)

ios 相册获取照片路径_ios 打开相册获取图片_ios 获取相册所有图片

/ **

*获取最新图片

*

* @ paramblock回调

* /

-(void)latestAsset: (void(^ _ Nullable)(ALAsset * _Nullableasset,NSError * _Nullableerror))块;

@end

// ALAssetsLibrary + WJ.m

#import“ ALAssetsLibrary + WJ.h”

@implementationALAssetsLibrary(WJ)

-(void)LatestAsset: (void(^)(ALAsset * _Nullable,NSError * _Nullable))块{

[selfenumerateGroupsWithTypes: ALAssetsGroupSavedPhotosusingBlock: ^(ALAssetsGroup * groupios 打开相册获取图片,BOOL * stop){

如果(组){

[groupsetAssetsFilter: [ALAssetsFilterallPhotos]];

[groupenumerateAssetsWithOptions: NSEnumerationReverse / *遍历方法* / usingBlock: ^(ALAsset *结果,NSUIntegerindex,BOOL *停止){

如果(结果){

如果(阻止){

阻止(结果,无);

}

*停止=是;

}

}];

*停止=是;

}

} failureBlock: ^(NSError *错误){

如果(错误){

如果(阻止){

ios 获取相册所有图片_ios 相册获取照片路径_ios 打开相册获取图片

阻止(无,错误);

}

}

}];

}

@end

PhotoKit已在iOS8中存在. 因此,将来,您可以直接使用用iOS8或更高版本编写的应用程序.

PhotoKit是一个简单实用的软件包. 有关详细的性能ios 打开相册获取图片,请参考参考中提供的链接.

按如下所示复制代码:

// PHAsset + WJ.h

#import <照片/Photos.h>

@interfacePHAsset(WJ)

/ **

*获取最新图片

* /

+(PHAsset *)LatestAsset;

@end

// PHAsset + WJ.m

#import“ PHAsset + WJ.h”

@implementationPHAsset(WJ)

+(PHAsset *)LatestAsset {

//获取所有资源的集合,并按资源创建时间排序

PHFetchOptions *选项= [[PHFetchOptionsalloc] init];

options.sortDescriptors = @ [[NSSortDescriptorsortDescriptorWithKey: @“ creationDate”升序: 否]];

PHFetchResult * assetFetchResults = [PHAssetfetchAssetsWithOptions: 选项];

返回[assetsFetchResultsfirstObject];

}

@end


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-162188-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...