ALAssetsLibrary获取相册图片

最近做了一下获取iPhone相册图片的事,看了一些ALAssetsLibrary相关的文章,受了些启发。不过对于其中的一些文章,我们大可善意地去相信作者还是想帮助我们的。

ALAssetsLibrary是一个很有用的家伙,因为它能取各种资源,图片、视频,等等。笔者也是初学者,不敢大放厥词,这里把我实现的代码贴出来,请大家指点。只是取图片。

先创建了一个类,只有一个属性:NSMutableArray *photos; 用来存放取到的图片。然后就可以在.m文件中写下面这个方法。

中间的注释部分,是可以对self.photos进行操作的函数插入点。

#pragma mark - 通过ALAssetsLibrary获取相册所有图片

-(void)getAllPhotosFromSysAlbum {

static int counter = 0;

if(!self.photos) _photos = [NSMutableArray array];

else [self.photos removeAllObjects];

NSMutableArray *assetURLDictionaries = [[NSMutableArray alloc] init];

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];

NSMutableArray *assetGroup = [[NSMutableArray alloc] init];

void (^assetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop){

if (result) {

if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {

[assetURLDictionaries addObject:[result valueForProperty:ALAssetPropertyURLs]];

NSURL *url = (NSURL *)[[result defaultRepresentation] url];

[library assetForURL:url resultBlock:^(ALAsset *asset){

[self.photos addObject:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]];

if (self.photos.count == counter) {

//这个地方就取到了图片,可以打印self.photos验证。

//可以在这里添加对图片的操作,展示或什么的,图片都保存在了self.photos数组里面。

     }

}failureBlock:^(NSError *err){

NSLog(@"%@",err.description);

}];

}

}

};

void (^assetGroupEnumerator) (ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop){

if(group){

[group enumerateAssetsUsingBlock:assetEnumerator];

[assetGroup addObject:group];

counter = [group numberOfAssets];

}

};

assetGroup = [[NSMutableArray alloc] init];

[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:assetGroupEnumerator failureBlock:^(NSError *err){

NSLog(@"%@",err.description);

}];

}

最后,本人初学,还请各位大神不吝赐教。谢谢!

ALAssetsLibrary获取相册图片

时间: 2024-10-10 16:40:01

ALAssetsLibrary获取相册图片的相关文章

Swift中获取相册图片与保存到相册

关于这个网上目前位置记录的资料比较少,记录一下这个坑 获取相册图片 1: var iPC = UIImagePickerController() 2: iPC.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum 3: iPC.delegate = self 4: presentViewController(iPC, animated: true) { () -> Void in 5: print("complete

android开发之——获取相册图片和路径

Android开发获取相册图片的方式网上有很多种,这里说一个Android4.4后的方法,因为版本越高,一些老的api就会被弃用,新的api和老的api不兼容,导致出现很多问题. 比如:managedQuery()现在已经被getContentResolver().query()替代了,不过它们的参数都是一样的 再比如Android4.4后Intent(Intent.ACTION_GET_CONTENT);和Intent(Intent.ACTION_OPEN_DOCUMENT);两个方法所得到的

UIImagePickerController(获取相册图片,打开相机)

UIImagePickerController的使用一定要在controller中,因为需要弹出控制器,如果不是在controller中,则可以通过响应者链查找获得controller,也可以通过代理方法回调 //本文查看地址http://write.blog.csdn.net/postedit - (IBAction)pickPhotoLibrary:(id)sender { if (_imagePicker == nil) { _imagePicker = [[UIImagePickerCo

不使用UIImagePickerControllerOriginalImage获取相册图片

? ? 一般用imagePickerController获取到dic以后常用的方法是使用 ? UIImage *image = [dic objectForKey:@"UIImagePickerControllerOriginalImage"]; 来获取原图,但是我使用这个方法获取到得图片并不是原图,而是尺寸经过压缩后的,后来找到了一个新的方法来进行获取 直接贴代码 ? [cpp]?view plaincopy ALAssetsLibrary?*library?=?[[ALAssets

Android获取相册图片

1. AlertDialog的使用 2. 显示和隐式意图的区别 3. 相册页面的跳转 4. 选择完成后返回图片的获取 -------------------------------------------------------------- 工程源码: -------------------------------------------------------------- 1. AlertDialog的使用 2. 显示和隐式意图的区别 3. 相册页面的跳转 4. 选择完成后返回图片的获取

IOS多选单选相册图片

IOS多选单选相册图片 之前做项目让实现多选相册的图片,自己写了一个demo一直保存在电脑上,今天下午发现电脑128G的容量已经快没有了,准备清理电脑,所以把之前做的一些demo放在博客上,以后方便用. 1.首先准备3个图片 2.定义单元格PhoCollectionViewCell #import <UIKit/UIKit.h> typedef void(^SelectBtnClickBlock) (BOOL isSelect); @interface PhoCollectionViewCel

iOS开发——使用技术OC篇&amp;保存(获取)图片到(自定义)相册

保存(获取)图片到(自定义)相册 最近在学 iOS相关技术(绘图篇实现画板功能)的时候设计到了两个常用的知识点,那就是保存图片到相册和葱相册中获取图片. 只是个人比较好奇拓展一些技术,说的难听点叫做装牛角尖,好听点就是为了装逼而已,所以在保存相册的时候使用真及测试发现不能保存到我iPhone里 main的自定义相册里面,就查看文档和资料,也借鉴别人的分享实现了想要的功能,就把他给记录下来,这个虽然没有直接保存和获取常用但是也是一项很好的实用技术. 一:首先来看看怎么获取相册的图片: 1 // 弹

修正iOS从照相机和相册中获取的图片 方向

修正iOS从照相机和相册中获取的图片 方向 修正iOS从照相机和相册中获取的图片 方向 使用系统相机拍照得到的图片的默认方向有时不是ImageOrientationDown,而是ImageOrientationLeft,在使用的时候会出现图片顺时针偏转90°.使用fixOrientation方法修正这个问题. - (UIImage *)fixOrientation { // No-op if the orientation is already correct if (self.imageOri

获取相册中得图片

ALAssetsGroup 类是系统用于映射相册资源中的每个相册,可以通过该类获取相册中的资源文件,并且能向相册中添加资源文件   是代表系统中整个资源库,使用它可以访问资源库中的资源和保存照片,视频等功能.- (id)valueForProperty:(NSString *)property;  // 获取相册中的属性有如下4个 ALAssetsGroupPropertyType      查看相册的类型 ALAssetsGroupPropertyName    查看相册的名字 ALAsset