1

我正在尝试获取资产的全尺寸图像数据,尤其是当照片在 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];
                        }];
4

0 回答 0