从url ios 8 objective c加载图像

时间:2015-11-30 12:06:21

标签: objective-c url ios8 photo

我正试图从这个网址[@“file:///var/mobile/Media/DCIM/100APPLE/IMG_0158.JPG”获取图片,但我不能。 永远都是零。

这是我的代码:

NSData *data = [NSData dataWithContentsOfURL: @"file:///var/mobile/Media/DCIM/100APPLE/IMG_0158.JPG"];
UIImage *image = [UIImage imageWithData:data];
self.pruebaTmp.image = image;

我使用以下代码获取网址:

    if (asset) {
        // get photo info from this asset
        PHImageRequestOptions * imageRequestOptions = [[PHImageRequestOptions alloc] init];
        imageRequestOptions.synchronous = YES;

        [[PHImageManager defaultManager]
         requestImageDataForAsset:asset
         options:imageRequestOptions
         resultHandler:^(NSData *imageData, NSString *dataUTI,
                         UIImageOrientation orientation,
                         NSDictionary *info)
         {
            NSURL *path = [info objectForKey:@"PHImageFileURLKey"];
             //asignamos el path de la imágen seleccionada en galeria
            self.pathImagen = path;
         }];


    }

如果有人可以提供帮助,我将非常感激,因为我无法使用获得的网址加载图片。

1 个答案:

答案 0 :(得分:0)

你不能从该网址获取UIimage或元数据。 您可以从本地访问标识符

获取UIImage
PHFetchResult *savedAssets = [PHAsset fetchAssetsWithLocalIdentifiers:@[localIdentifier] options:nil];

[savedAssets enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {

    //this gets called for every asset from its localIdentifier you saved
    //PHImageRequestOptionsDeliveryModeHighQualityFormat
    PHImageRequestOptions * imageRequestOptions = [[PHImageRequestOptions alloc] init];
    imageRequestOptions.synchronous = NO;
    imageRequestOptions.deliveryMode = PHImageRequestOptionsResizeModeFast;
    imageRequestOptions.resizeMode = PHImageRequestOptionsResizeModeFast;
    [[PHImageManager defaultManager]requestImageForAsset:asset targetSize:PHImageManagerMaximumSize contentMode:PHImageContentModeAspectFill options:imageRequestOptions resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
        NSLog(@"get image from result");
        if (result) {          

        }

    }];
    imageRequestOptions = nil;
}];