ALAssetsgroup
---------------------------------------------------------------------------
Enumerating Assets(遍历资源)
–
enumerateAssetsUsingBloc k:(用一个block来遍历组里的资源) –
enumerateAssetsWithOptio ns:usingBlock:(在枚举选项的条件下,用一个block来遍历组里的资源) –
enumerateAssetsAtIndexes :options:usingBlock:(在枚举选项的条件下,用一个block来遍历组里特定index的资源) -
Adding Assets(添加资源)
-
–
addAsset:(添加一个已存在的asset到接收者。返回yes成功;反之,失败。) editable property(指示程序是否可以编辑组,只读属性,打印看了一下,系统自带的是不能编辑的,其它可以编辑) -
Filtering(过滤)
–
numberOfAssets(返回组过滤器条件下的资源个数,若没有设置过滤器,则返回组里的资源个数) –
setAssetsFilter:(设置组的过滤器) -
Accessing Properties(访问属性)
–
valueForProperty:(通过组属性名称,获取组属性:组名称,组类型,组永久性ID,组URL) –
posterImage(组的封面)
ALAsset
---------------------------------------------------------------------------
Asset Properties
–
valueForProperty: (1.ALAssetPropertyType 资源的类型(照片,视频) 2.ALAssetPropertyLocation 资源地理位置(无位置信息返回null) 3.ALAssetPropertyDuation 播放时长(照片返回ALErorInvalidProperty) -
4.ALAssetPropertyOrientati on 方向(共有8个方向,参见:ALAssetOrientation) -
5.ALAssetPropertyDate 拍摄时间(包含了年与日时分秒) -
6.ALAssetPropertyRepresent ations 描述(打印看了下,只有带后缀的名称) -
7.ALAssetPropertyURLs(返回一个字典,键值分别是文件名和文件的url) -
8.ALAssetPropertyAssetURL 文件的url ) editable property(指示资源是否可以编辑,只读属性) originalAsset property(原始资源。若没有保存修改后资源,则原始资源为nil)
Accessing Representations
–
defaultRepresentation –
representationForUTI: –
thumbnail(小正方形的缩略图) –
aspectRatioThumbnail(按原始资源长宽比例的缩略图)
Setting New Image and Video Data
–
setImageData:metadata:completionBlock: 用给定的image data 替换接收者的image data。
- –
setVideoAtPath:completionBlock: - 用给定的URL的video 替换接收者的video data。
Saving to the Saved Photos Album
–
writeModifiedImageDataTo SavedPhotosAlbum:metadata:completionBlock: 保存image data到Saved Photos album
–
writeModifiedVideoAtPath ToSavedPhotosAlbum:completionBlock:
ALAssetRepresentation
---------------------------------------------------------------------------
ALAssetRepresentation对象封装了一个给定ALAsset对象的陈述。
asset将
有两个陈述版本,一个是RAW的,一个是JPEG的。
Getting Image Representations
–
CGImageWithOptions: –
fullResolutionImage(完全分辨率的图片) –
fullScreenImage(满屏的图片)
Getting Image Attributes
–
orientation(文件方向) –
scale(长宽比例) –
filename(文件名字)
Getting Raw Data
–
size(文件尺寸,以byte为单位) –
getBytes:fromOffset:length:error:
Getting Metadata
Getting an URL
使用
---------------------------------------------------------------------------
- -(void)getGroup
- {
-
@autoreleasepool -
{ -
ALAssetsLibraryAccessFai lureBlock failureblock = -
^(NSError *myerror) -
{ -
NSLog(@"相册访问失败 =%@", [myerror localizedDescription]); -
if ([myerror.localizedDescription rangeOfString:@"Global denied access"].location!=NSNotFound) { -
NSLog(@"无法访问相册.请在'设置->定位服务'设置为打开状态."); -
}else{ -
NSLog(@"相册访问失败."); -
} -
}; -
-
ALAssetsLibraryGroupsEnu merationResultsBlock -
libraryGroupsEnumeration = ^(ALAssetsGroup* group,BOOL* stop) -
{ -
if (group!=nil) -
{ -
[self.groupArray addObject:group]; -
} -
else -
{ -
if (!_groupTable) -
{ -
_groupTable = [[UITableView alloc] initWithFrame:EZRECT(0, 0, SCREEN_SIZE_WIDTH, SCREEN_SIZE_HEIGHT - 44) -
style:UITableViewStylePlain]; -
_groupTable.delegate = self; -
_groupTable.dataSource = self; -
[self.view addSubview:_groupTable]; -
} -
[_groupTable performSelectorOnMainThr ead:@selector(reloadData) withObject:nil waitUntilDone:NO]; -
} -
}; -
[[DataCenter defaultAssetsLibrary] enumerateGroupsWithTypes :ALAssetsGroupAll -
usingBlock:libraryGroupsEnumeration -
failureBlock:failureblock]; -
} - }
- +
(ALAssetsLibrary *)defaultAssetsLibrary - {
-
static dispatch_once_t pred = 0; -
static ALAssetsLibrary *library = nil; -
dispatch_once(&pred, -
^{ -
library = [[ALAssetsLibrary alloc] init]; -
}); -
return library; - }
- -(void)filterImageWithGroup:(ALAssetsGroup
*)group - {
-
[self.images removeAllObjects]; -
ALAssetsGroupEnumeration ResultsBlock groupEnumerAtion = -
^(ALAsset *result,NSUInteger index, BOOL *stop) -
{ -
if (result!=NULL) -
{ -
if ([[result valueForProperty:ALAssetPropertyType]isEqualToString:ALAssetTypePhoto]) -
{ -
[self.images addObject:result]; -
} -
} -
else -
{ -
//主线程中刷新UI -
} -
-
}; -
[group enumerateAssetsUsingBloc k:groupEnumerAtion]; - }