2014-02-01 4 views
3

У меня есть несколько изображений в моем фотоальбоме. Я уже забрал URLs активов всех из них .. Я хочу, чтобы получить конкретное изображение, используя URL активов ... ниже код дал мне URL активов ..Получить изображение (UIImage), используя URL-адрес ресурса в iOS 7

ALAssetRepresentation *defaultRepresentation = [asset defaultRepresentation]; 

         NSString *uti = [defaultRepresentation UTI]; 
         NSURL *URL = [[asset valueForProperty:ALAssetPropertyURLs] valueForKey:uti]; 

Теперь, используя этот адрес, как я могу получить изображение (UIImage)?

+0

http://stackoverflow.com/questions/3837115/display-image-from-url-retrieved-from-alasset-in-iphone и http://stackoverflow.com/questions/14496910/unable- to-load-image-from-asset-url – iPatel

ответ

10

Получить Url этим,

NSURL *url= (NSURL*) [[asset valueForProperty:ALAssetPropertyURLs] valueForKey:[[[asset valueForProperty:ALAssetPropertyURLs] allKeys] objectAtIndex:0]]; 

И получить изображение из URL, как показано ниже.

ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset) 
{ 
    ALAssetRepresentation *rep = [myasset defaultRepresentation]; 
    @autoreleasepool { 
     CGImageRef iref = [rep fullScreenImage]; 
     if (iref) { 
      UIImage *image = [UIImage imageWithCGImage:iref]; 
      self.loadedImage = image; 
      dispatch_async(dispatch_get_main_queue(), ^{ 
       //UIMethod trigger... 
      }); 
      iref = nil; 
     } 
    } 
}; 

ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror) 
{ 
    NSLog(@"Can't get image - %@",[myerror localizedDescription]); 
}; 

ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init]; 
[assetslibrary assetForURL:yourUrl 
       resultBlock:resultblock 
       failureBlock:failureblock]; 
+0

Почему dispatch_async ??? – Jamil

+1

@Jamil Если мы выполняем JOB при прокрутке средства просмотра таблицы, это может замедлить рендеринг для синхронизации случая. поэтому я использую async. – Mani

0
UIImage *img = [UIImage imageWithCGImage:[[myAsset defaultRepresentation] fullResolutionImage] 

Надеется, что это помогает

+3

Это не использует URL-адрес ресурса и, следовательно, не отвечает на вопрос. – Michael

Смежные вопросы