照片框架。 requestImageForAsset 不能 return 正确的图像大小

Photos framework. requestImageForAsset can't return right imagesize

我正在使用方法 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},这是图像的完整尺寸。我能做些什么来修复它?

谢谢。

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

我该怎么解释这个...

在代码或界面生成器中,我们将 iPhone 5 屏幕的屏幕尺寸指定为 (320, 568),但它实际上是 (640, 1136) 视网膜尺寸。

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

我认为我们应该用屏幕比例修复 targetSize。

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

所以,如果你使用 UIImageView,你得到一个固定的图像,显​​示它是正确的。