2013-11-25 4 views
0

현재 얼굴 검색 및 태그 지정을 구현하는 iPhone 응용 프로그램을 개발 중입니다. 나는 태그와 해당 이미지의 URL을 저장하기 위해 SQLite 데이터베이스를 사용하고 있습니다. 이제 검색하는 동안 태그를 기반으로 원하는 이미지를 필터링하고이 태그와 일치하는 이미지의 URL 세트 (Db에서 가져 오기)를 가져 오는 로직을 구현할 것입니다. (자산 라이브러리 URL의 형태의 - 자산 라이브러리 : //asset/asset.JPG ID = 79465E8C-53B9-40D6-B11C-07A1856E9093 & 내선 = JPG는) 내가 배열이있는 경우ALAssetsLibrary를 사용하여 일련의 사진을 검색하려고합니다.

내 질문은, NSURL의 ALAssetsLibrary를 사용하여 맞춤 이미지 선택기를로드하려면 어떻게해야합니까? 기본 사진 라이브러리의 모든 이미지가 아니라 배열에있는 URL 만 있으면됩니까? 이 질문에 대한 https://stackoverflow.com/a/18888938

: 나는 URL의 내 배열을 통해 단일 루프를 실행하려면 어떻게 display image from URL retrieved from ALAsset in iPhone

가로드

나는이 대답을 기반으로 URL에서 이미지를로드하는 방법을 읽고 이러한 이미지는 사용자 지정 UICollectionView에 ALAssets를 사용하여 ImagePickerController를 복제합니까?

+0

이미 찾은 코드를 사용해 보셨습니까? – Wain

답변

0

apple에서이 sample code을보고 맞춤 이미지 선택 도구를 구현하십시오.

0
/** 
* This method is used to get all images from myAlbum 
* folder in device if getAlbumImages is set to 1 
* else loads all images from devices library 
*/ 
-(void)readImages:(int)getAlbumImages 
{ 
    imageArray = [[NSArray alloc] init]; 
    mutableArray =[[NSMutableArray alloc]init]; 
    NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init]; 

    library = [[ALAssetsLibrary alloc] init]; 

    if(getFolderImages == 1) { 
     // Load images from Shareaflash folder 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder 
     NSString *documentdataPath = [documentsDirectory stringByAppendingPathComponent:@"myFolder"]; 
     NSLog(@"documentdataPath %@",documentdataPath); 

    } else { 
     // Load all images 
    } 

    void (^assetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { 
     if(result != nil) { 
      if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) { 
       [assetURLDictionaries addObject:[result valueForProperty:ALAssetPropertyURLs]]; 

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

       [library assetForURL:url resultBlock:^(ALAsset *asset) { 
          [mutableArray addObject:asset]; 

          if ([mutableArray count]==count) 
          { 
           imageArray =[[NSArray alloc] initWithArray:mutableArray]; 
           [self allPhotosCollected:imageArray]; 
          } 
         } 
         failureBlock:^(NSError *error){ NSLog(@"operation was not successfull!"); } ]; 
      } 
     } 
    }; 
    NSMutableArray *assetGroups = [[NSMutableArray alloc] init]; 

    void (^ assetGroupEnumerator) (ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop) { 
     if(group != nil) { 
      [group enumerateAssetsUsingBlock:assetEnumerator]; 
      [assetGroups addObject:group]; 
      count=[group numberOfAssets]; 
     } 
    }; 
    assetGroups = [[NSMutableArray alloc] init]; 

    [library enumerateGroupsWithTypes:ALAssetsGroupAll 
         usingBlock:assetGroupEnumerator 
         failureBlock:^(NSError *error) { NSLog(@"There is an error"); }]; 
} 
관련 문제