照片框架。 requestImageForAsset无法返回正确的imagesize

时间:2015-02-03 10:25:25

标签: ios objective-c iphone ipad ios8

我使用requestImageForAsset:targetSize:contentMode:options:resultHandler:方法从PHAsset中获取图片。

PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
options.resizeMode = PHImageRequestOptionsResizeModeExact;
options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
[[PHImageManager defaultManager] requestImageForAsset:asset targetSize:CGSizeMake(150, 200) contentMode:PHImageContentModeAspectFit options:options resultHandler:handler];

这些代码有效,但返回的imageSize不是{150,200},而是{300,400},这是图像的完整大小。我该怎么做才能解决它?

感谢。

3 个答案:

答案 0 :(得分:0)

您的targetSize是:CGSizeMake(150,200)尝试将其更改为CGSizeMake(300,400)

答案 1 :(得分:0)

我该如何解释......

在代码或界面构建器中,我们将为iPhone 5屏幕指定屏幕大小为(320,568),但实际上(640,1136)视网膜大小。

所以(150,200)会给你(300,400)。如果你想要150 x 200,请尝试指定(75,100)的targetSize。

答案 2 :(得分:0)

我认为我们应该使用Screen scale修复targetSize。

-(CGSize)fixTargetSize:(CGSize)targetSize{
CGFloat scale = [UIScreen mainScreen].scale;
return CGSizeMake(targetSize.width*scale, targetSize.height*scale);
}

所以,如果你使用UIImageView,你得到了一张固定的图片,它是正确的。