由於博客遷移至www.coderyi.com,文章請看http://www.coderyi.com/archives/424
該框架下有幾個類,ALAssetsLibrary,ALAssetsGroup,ALAsset,ALAssetsFilter,ALAssetRepresentation。
ALAssetsLibrary類
ALAssetsLibrary類可以實現查看相冊列表,增加相冊,保存圖片到相冊等功能。
例如enumerateGroupsWithTypes方法列舉所有相冊。
ALAssetsGroup
ALAssetsGroup就是相冊的類,可以通過valueForProperty方法查看不同屬性的值,如:ALAssetsGroupPropertyName,相冊名。
ALAssetsGroup類有幾個方法,posterImage方法就是相冊的封面圖片,numberOfAssets方法獲取該相冊的圖片視頻數量,可以通過enumerateAssetsUsingBlock方法列舉出所有照片。
ALAssetsGroup 可以使用setAssetsFilter:(ALAssetsFilter *)filter過濾照片或者視頻等。
首先是獲取所有相冊,通過ALAssetsLibrary的實例方法得到ALAssetsGroup類數組。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
ALAssetsLibrary *assetsLibrary; NSMutableArray *groupArray; assetsLibrary = [[ALAssetsLibrary alloc] init]; groupArray=[[NSMutableArray alloc] initWithCapacity:1]; [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) { if (group) { [groupArray addObject:group]; // 通過這個可以知道相冊的名字,從而也可以知道安裝的部分應用 //例如 Name:柚子相機, Type:Album, Assets count:1 NSLog(@ "%@" ,group); } } failureBlock:^(NSError *error) { NSLog(@ "Group not found!\n" ); }]; |
ALAsset類
ALAsset類也可以通過valueForProperty方法查看不同屬性的值,如:ALAssetPropertyType,asset的類型,有三種ALAssetTypePhoto, ALAssetTypeVideo or ALAssetTypeUnknown。
另外還可以通過該方法獲取ALAssetPropertyLocation(照片位置),ALAssetPropertyDuration(視頻時間),ALAssetPropertyDate(照片拍攝日期)等。
可以通過thumbnail方法就是獲取該照片。
根據相冊獲取該相冊下所有圖片,通過ALAssetsGroup的實例方法得到ALAsset類數組。
1
2
3
4
5
6
7
8
|
[_group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) { if (result) { [imageArray addObject:result]; NSLog(@ "%@" ,result); iv.image=[UIImage imageWithCGImage: result.thumbnail]; NSString *type=[result valueForProperty:ALAssetPropertyType]; } }]; |
ALAssetRepresentation類
ALAsset類有一個defaultRepresentation方法,返回值是ALAssetRepresentation類,該類的作用就是獲取該資源圖片的詳細資源信息。
如
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
// //獲取資源圖片的詳細資源信息 ALAssetRepresentation* representation = [asset defaultRepresentation]; //獲取資源圖片的長寬 CGSize dimension = [representation dimensions]; //獲取資源圖片的高清圖 [representation fullResolutionImage]; //獲取資源圖片的全屏圖 [representation fullScreenImage]; //獲取資源圖片的名字 NSString* filename = [representation filename]; NSLog(@ "filename:%@" ,filename); //縮放倍數 [representation scale]; //圖片資源容量大小 [representation size]; //圖片資源原數據 [representation metadata]; //旋轉方向 [representation orientation]; //資源圖片url地址,該地址和ALAsset通過ALAssetPropertyAssetURL獲取的url地址是一樣的 NSURL* url = [representation url]; NSLog(@ "url:%@" ,url); //資源圖片uti,唯一標示符 NSLog(@ "uti:%@" ,[representation UTI]);
|