日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

获取IPhone相册中图片的方法(包括获取所有图片)

發布時間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 获取IPhone相册中图片的方法(包括获取所有图片) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

獲取iphone相冊方法:

方法一:

ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock =

^(ALAssetsGroup *group, BOOL *stop) {

if (group!=nil) {

[groups addObject:group];

} else {

[self.tableView performSelectorOnMainThread:@selector(reloadData)

withObject:nil waitUntilDone:YES];

}

};

ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError *error)

{

NSString *errorMessage = nil;

switch ([error code]) {

case ALAssetsLibraryAccessUserDeniedError:

case ALAssetsLibraryAccessGloballyDeniedError:

errorMessage = @"The user has declined access to it.";

break;

default:

errorMessage = @"Reason unknown.";

break;

}

UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Opps"

message:errorMessage delegate:self cancelButtonTitle:@"Cancel"

otherButtonTitles:nil, nil];

[alertView show];

[alertView release];

};

NSUInteger groupTypes = ALAssetsGroupAlbum | ALAssetsGroupEvent |

ALAssetsGroupFaces;

ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] ?init];

[assetsLibrary enumerateGroupsWithTypes:groupTypes

usingBlock:listGroupBlock failureBlock:failureBlock];

[assetsLibrary release];

方法二:

void (^assetGroupEnumerator)(ALAssetsGroup *, BOOL *) =

^(ALAssetsGroup *group, BOOL *stop)

{

if (group == nil)

{

[self.tableView performSelectorOnMainThread:@selector(reloadData)

withObject:nil waitUntilDone:YES];

return;

}

[groups addObject:group];

};

void (^assetGroupEnumberatorFailure)(NSError *) = ^(NSError *error)

{

NSString *errorMessage = nil;

switch ([error code]) {

case ALAssetsLibraryAccessUserDeniedError:

case ALAssetsLibraryAccessGloballyDeniedError:

errorMessage = @"The user has declined access to it.";

break;

default:

errorMessage = @"Reason unknown.";

break;

}

UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Opps"

message:errorMessage delegate:self cancelButtonTitle:@"Cancel"

otherButtonTitles:nil, nil];

[alertView show];

[alertView release];

};

ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] ?init];

[assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll

usingBlock:assetGroupEnumerator

failureBlock:assetGroupEnumberatorFailure];

[assetsLibrary release];

以上是獲取所有ALAssetsGroup,即相冊對象。

獲取相冊的標示照片:

ALAssetsGroup *group = [groups objectAtIndex:index];

CGImageRef posterImageRef = [group posterImage];

UIImage *posterImage = [UIImage

imageWithCGImage:posterImageRef];

獲取相冊中的所有對象(相片和錄像等):

group = (ALAssetsGroup*)[assetGroups?objectAtIndex:index];

[group setAssetsFilter:[ALAssetsFilter allAssets]];

[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger

index, BOOL *stop)

{

if(result == nil)

{

return;

}

//獲取相片的url:

NSString *url = [[[result

defaultRepresentation]url]description];

[self.urls addObject:url];

[self.assets addObject:result];

}];

只獲取照片的方法:

ALAssetsGroupEnumerationResultsBlock assetsEnumerationBlock =

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

if (result) {

[assets addObject:result];

}

};

ALAssetsFilter *onlyPhotosFilter = [ALAssetsFilter?allPhotos];

[assetsGroup setAssetsFilter:onlyPhotosFilter];

[assetsGroup ?enumerateAssetsUsingBlock:assetsEnumerationBlock];


獲得的ALAsset對象就是相片對象:其中有相片的縮略圖,全屏圖,高清圖,url等屬性。

ALAsset *result = [assets objectAtIndex:index];

獲取url:

String類型:

NSString *url = [[[result

defaultRepresentation]url]description];

URL類型:

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

獲取縮略圖:

CGImageRef ?ref = [result thumbnail];

UIImage *img =?[[UIImage alloc]initWithCGImage:ref];

獲取全屏相片:

CGImageRef ref = [[result ?defaultRepresentation]fullScreenImage];

UIImage *img = [[UIImage alloc]initWithCGImage:ref];

獲取高清相片:

CGImageRef ref = [[result ?defaultRepresentation]fullResolutionImage];

UIImage *img = [[UIImage alloc]initWithCGImage:ref];

根據ALAsset的url獲取ALAsset對象:

void (^assetRseult)(ALAsset *) = ^(ALAsset *result)

{

if (result == nil)

{

return;

}

UIImage *image = [UIImage imageWithCGImage:[[result ?defaultRepresentation]fullScreenImage]];

[self.images addObject:image];

[self.assetArrays addObject:result];

};

void (^failureBlock)(NSError *) = ^(NSError *error) {

UIAlertView * alert = [[UIAlertView alloc]

initWithTitle:@"Error"

message:[NSString stringWithFormat:@"Error: %@", [error?description]]

delegate:nil

cancelButtonTitle:@"Ok"

otherButtonTitles:nil];

[alert show];

[alert release];

NSLog(@"A problem occured %@", [error description]);

};

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

[library assetForURL:assetUrl resultBlock:assetRseult ?failureBlock:failureBlock];

[library release];


resultBlock也可以如此定義:

ALAssetsLibraryAssetForURLResultBlock ?assetsResultBlock = ^(ALAsset *result)

{

if (result == nil)

{

return;

}

UIImage *image = [UIImage imageWithCGImage:[[result ?defaultRepresentation]fullScreenImage]];

[self.images addObject:image];

[self.assetArrays addObject:result];

};

獲取照片的時間:

-(void)getDate:(ALAsset*)rule

{

NSDictionary *dic = [[rule ?defaultRepresentation]metadata];

id dateTime = [[dic ?objectForKey:@"{TIFF}"]objectForKey:@"DateTime"];

if (dateTime!=nil) {

NSArray *time = [dateTime

componentsSeparatedByCharactersInSet:[NSCharacterSet

whitespaceCharacterSet]];

NSString *dataStr = [time objectAtIndex:0];

if (![date containsObject:dataStr]) {

[date addObject:[time objectAtIndex:0]];

}

}

}

總結

以上是生活随笔為你收集整理的获取IPhone相册中图片的方法(包括获取所有图片)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。