gpt4 book ai didi

ios - 使用具有固定宽度和可变高度的 PHImageManager 时的低分辨率图像

转载 作者:行者123 更新时间:2023-11-29 02:02:17 26 4
gpt4 key购买 nike

我正在使用 Photos Framework根据用户定义的参数请求图像显示在 UIImageView 中。

我主要使用这段代码:

var options = PHImageRequestOptions()
options.version = PHImageRequestOptionsVersion.Current
options.deliveryMode = PHImageRequestOptionsDeliveryMode.HighQualityFormat
options.resizeMode = PHImageRequestOptionsResizeMode.Exact
options.networkAccessAllowed = true

PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: targetSize, contentMode: PHImageContentMode.AspectFill, options: options) { (result: UIImage!, info) -> Void in
if !info[PHImageResultIsDegradedKey]!.boolValue {
println("targetSize: \(targetSize)")
println("asset.pixelWidth: \(asset.pixelWidth)")
println("asset.pixelHeight: \(asset.pixelHeight)")
println("result.size: \(result.size)")
}
}

用户可以选择“适合宽度”或“适合高度”选项。在“适合宽度”中,我使用:

targetSize = CGSizeMake(width, PHImageManagerMaximumSize.height)

在“适合高度”中,我使用:

targetSize = CGSizeMake(PHImageManagerMaximumSize.width, height)

其中 widthheight 是从 UIImageView 的尺寸动态获取的。我的想法是,通过在非固定尺寸中使用 PHImageManagerMaximumSize 并在 contentMode 中使用 PHImageContentMode.AspectFill,我将获得最大的图像可能适合我的 UIImageView。

“适合宽度”选项:

targetSize: (2122.40673828125, -1.0)
asset.pixelWidth: 2048
asset.pixelHeight: 1536
result.size: (60.0, 45.0)

“适合高度”选项:

targetSize: (-1.0, 2241.7099609375)
asset.pixelWidth: 2048
asset.pixelHeight: 1536
result.size: (2048.0, 1536.0)

问题发生在第一种情况下:用户在使用“适合宽度”选项时看到的是分辨率非常低的图像。

是我做错了什么还是 PHImageManager 有问题?

最佳答案

尝试同步调用此方法。这将立即为您提供尺寸和质量正确的图像。试试这个:

options.synchronous = true

关于ios - 使用具有固定宽度和可变高度的 PHImageManager 时的低分辨率图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30196441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com