2015-09-01 24 views
0

我是iOS开发人员我想从库中获取所有图像,无需使用UIImagepickercontroller,并获取前10张图像 任何想法?如何从资产库iOS获取图片?

+0

我想你的意思ALAsset获得最新的图像,你应该尝试在这里提出一个更具体的问题 – Loxx

回答

1

有很多例子了DER将引导您如何从ALAssetLibrary

https://www.cocoacontrols.com/search?q=image+picker得到的图像。

下面是例子来自ImagePicker

- (void)latestPhotoWithCompletion:(void (^)(UIImage *photo))completion 
{ 

ALAssetsLibrary *library=[[ALAssetsLibrary alloc] init]; 
// Enumerate just the photos and videos group by using ALAssetsGroupSavedPhotos. 
[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) { 

    // Within the group enumeration block, filter to enumerate just photos. 
    [group setAssetsFilter:[ALAssetsFilter allPhotos]]; 

    // For this example, we're only interested in the last item [group numberOfAssets]-1 = last. 
    if ([group numberOfAssets] > 0) { 
     [group enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex:[group numberOfAssets]-1] options:0 
          usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) { 
           // The end of the enumeration is signaled by asset == nil. 
           if (alAsset) { 
            ALAssetRepresentation *representation = [alAsset defaultRepresentation]; 
            // Do something interesting with the AV asset. 
            UIImage *img = [UIImage imageWithCGImage:[representation fullScreenImage]]; 

            // completion 
            completion(img); 

            // we only need the first (most recent) photo -- stop the enumeration 
            *innerStop = YES; 
           } 
          }]; 
    } 
} failureBlock: ^(NSError *error) { 
    // Typically you should handle an error more gracefully than this. 
}]; 


} 

使用

__weak __typeof(self)wSelf = self; 
    [self latestPhotoWithCompletion:^(UIImage *photo) { 

     UIImageRenderingMode renderingMode = YES ? UIImageRenderingModeAlwaysOriginal : UIImageRenderingModeAlwaysTemplate; 
     [wSelf.switchCameraBut setImage:[photo imageWithRenderingMode:renderingMode] forState:UIControlStateNormal]; 

    }];