ios - 从 PHImageFileURLKey 获取的 URL 读取

标签 ios image file ios8

iOS 8 的照片框架能够使用 PHImageFileURLKey 返回图像的 URL。但是我似乎无法阅读此网址。我只需要读取权限。到目前为止,我尝试使用给定 URL 的任何地方都被视为文件根本不存在。如何使用 URL 获取数据?

成功返回 PHAssets 和 URL 的代码:

PHFetchResult* phFetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:nil]
PHImageManager *manager = [PHImageManager defaultManager];
PHImageRequestOptions* options = [[PHImageRequestOptions alloc] init];
options.synchronous = YES; // Force sequential work. We have nothing to do until this block returns.
PHAsset* asset = [phFetchResult objectAtIndex:index];
[manager requestImageForAsset:asset targetSize:PHImageManagerMaximumSize contentMode:PHImageContentModeDefault options:options resultHandler:^(UIImage *resultImage, NSDictionary *info)
 {
     _image = resultImage;
     NSURL* fileURL = [info objectForKey:@"PHImageFileURLKey"];
     _imageLocation = [fileURL relativePath];
 }];

未找到任何代码:

NSURL* fileURL = [info objectForKey:@"PHImageFileURLKey"];
NSLog(@"File exist?: %d", [[NSFileManager defaultManager] fileExistsAtPath:[fileURL relativePath]]);

我目前的解决方法是获取给定的 UIImage 并将其保存到/tmp 目录,然后使用该 URL。这不是一个理想的解决方案,我真的很想知道 PHImageFileURLKey 的用途

最佳答案

我研究了 PHImageFileURLKey,我认为无法通过 PHImageFileURLKey 找到图像数据,但您可以使用 Assets 本地标识符而不是 找到您的图像数据>PHImageFileURLKey.

我的代码供您引用:

您可以使用您 Assets 的本地标识符,并将获得图像作为响应。

PHFetchResult *savedAssets = [PHAsset fetchAssetsWithLocalIdentifiers:@[asset.localIdentifier] options:nil];
    [savedAssets enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {

        //this gets called for every asset from its localIdentifier you saved
        PHImageRequestOptions * imageRequestOptions = [[PHImageRequestOptions alloc] init];
        imageRequestOptions.synchronous = YES;
        imageRequestOptions.deliveryMode = PHImageRequestOptionsResizeModeFast;

        [[PHImageManager defaultManager]requestImageForAsset:asset targetSize:CGSizeMake(50,50) contentMode:PHImageContentModeAspectFill options:imageRequestOptions resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
            NSLog(@"get image from result");

        }];
    }];

关于ios - 从 PHImageFileURLKey 获取的 URL 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26290443/

相关文章:

html - 将鼠标悬停在不同 div 中的链接上时如何隐藏图像

java - 在 Java applet 中删除和重绘图像

android - 需要 Android mp3 文件下载帮助

java - Apache 事务 :write file transactionally - how to use resourceId

php - MIME 类型检查对文件上传没用? (特别是使用 Javascript 文件 API)?

ios - UIImage-imageWithContentsOfFile:vs initWithContentsOfFile

ios - Xcode - 单元测试 : Test session exited(-1) without checking in

ios - 在 SwiftUI 中限制拖动到圆形边界

ios - 是否可以在不播放的情况下从音频中获取频率?

javascript - 未加载时的背景图像微调器