【问题标题】:How to get photo Library Image count [duplicate]如何获取照片库图像计数[重复]
【发布时间】:2017-01-10 07:55:37
【问题描述】:
从 Photolibrary 中提取图像,我们使用 UIImagePickerViewController 和 UIImagePickerControllerSourceTypePhotoLibrary 进入 Photolibrary 并获取图像,现在我的问题是如何获取保存在我的 photoLibrary 中的图像计数。
它是否允许我获取图像计数以显示在我的应用程序中。
【问题讨论】:
标签:
ios
objective-c
uiimagepickercontroller
photolibrary
【解决方案1】:
是的,您可以使用以下方法获取所有图像:-
导入照片框架
#import <Photos/Photos.h>
-(void)getAllPhotosFromCamera
{
imageArray=[[NSArray alloc] init];
mutableArray =[[NSMutableArray alloc]init];
PHImageRequestOptions *requestOptions = [[PHImageRequestOptions alloc] init];
requestOptions.resizeMode = PHImageRequestOptionsResizeModeFast;
requestOptions.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
requestOptions.synchronous = true;
PHFetchResult *result = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:nil];
NSLog(@"%d",(int)result.count);
PHImageManager *manager = [PHImageManager defaultManager];
NSMutableArray *images = [NSMutableArray arrayWithCapacity:[result count]];
// assets contains PHAsset objects.
__block UIImage *ima;
for (PHAsset *asset in result)
{
// Do something with the asset
[manager requestImageForAsset:asset
targetSize:PHImageManagerMaximumSize
contentMode:PHImageContentModeDefault
options:requestOptions
resultHandler:^void(UIImage *image, NSDictionary *info)
{
ima = image;
[images addObject:ima];
}];
}
imageArray = [images copy];
[_cView reloadData];
}
【解决方案2】:
如果你想得到计数,那么使用照片框架你可以像这样得到计数
PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:nil];
NSLog(@"count of All Photos from Moments in iOS8, or Camera Roll - %lu",(unsigned long)allPhotosResult.count);
别忘了导入照片框架
#import <Photos/Photos.h>
【解决方案3】:
在这里您可以获得所有图像计数。它还包括所有相册和相机胶卷图像。
__block NSInteger intTotalCount=0;
// Get all Album list...
PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:nil];
[userAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx1, BOOL *stop) {
PHFetchResult *assetsFetchResult = [PHAsset fetchAssetsInAssetCollection:collection options:nil];
intTotalCount+=assetsFetchResult.count;
}];
// Get image count from Camera Roll
PHFetchOptions *allPhotosOptions = [PHFetchOptions new];
allPhotosOptions.predicate = [NSPredicate predicateWithFormat:@"mediaType == %d ",PHAssetMediaTypeImage];
PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithOptions:allPhotosOptions];
intTotalCount+=allPhotosResult.count;
NSLog(@"%d",intTotalCount);