我正在尝试获取资产的全尺寸图像数据,尤其是当照片在 iCloud 中时。我想要最新版本的图像。
如果图像是 JPG 则一切正常,但如果它是 PNG(例如屏幕截图)并且在 iCloud 上,我不会收到任何数据,也不会出现错误。如果 PNG 在设备上,我将获得全尺寸图像。要从 iCloud 照片接收 PNG 图像,我需要请求原始版本 ( PHImageRequestOptionsVersionOriginal
),但我不想要 JPG 的原始版本。
有没有办法从 iCloud 请求 JPG 和 PNG 的最新版本?还是我做错了什么?
这是我请求图像的代码:
PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
//options.version = PHImageRequestOptionsVersionOriginal;
options.synchronous = NO;
options.networkAccessAllowed = YES;
options.progressHandler = ^(double progress, NSError *error, BOOL *stop, NSDictionary *info) {
if (_progressViewController != nil) {
dispatch_async(dispatch_get_main_queue(), ^{
if (!displayingDownload) {
[_progressViewController show];
displayingDownload = true;
}
NSLog(@"progressing...%f", progress);
[_progressViewController setProgress:progress];
});
}
};
_lastRequest = [_imageManager requestImageDataForAsset:_processingAsset
options:options
resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info)
{
_imageData = imageData;
NSError *error = (NSError*)[info objectForKey:PHImageErrorKey];
}];