如何在不损失质量的情况下将UIImage存储在NSMutableArray中

时间:2015-07-20 19:28:24

标签: ios objective-c uiimage nsmutablearray photos

我有问题,我使用Photo框架,当我这样做时(图片是NSMutableArray):

[[PHImageManager defaultManager]requestImageForAsset:lastAsset targetSize:CGSizeMake(150, 300) contentMode:PHImageContentModeAspectFit options:nil resultHandler:^(UIImage *result, NSDictionary *info) {

        [images addObject:result];

    NSLog(@"%@ %@ %@",result,[images objectAtIndex:0],[images lastObject]);

 }];

我在控制台中获得了UIImages大小的结果:

700,700 60,40 700,700

我不明白为什么,当我添加一个名为"图像"的NSMutableArray的图像时:

view.image = [images objectAtIndex:index];

我的所有图像质量非常差(我认为它们都存储在我的图像NSMutableArray中的60,40)。 或者我想以原始质量(700,700而非60,40)恢复这些论文,以便以优质的方式展示论文。

非常感谢大家!!

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法。

解决方案是添加此选项:

        PHImageRequestOptions* options = [[PHImageRequestOptions alloc]init];
        options.resizeMode = PHImageRequestOptionsResizeModeExact;
        options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
        options.version = PHImageRequestOptionsVersionUnadjusted;
        options.synchronous = YES;

根据我的要求。

我们可以看到deliveryMode对于保持良好的图像质量非常重要。

感谢大家的帮助!