我已于 2015 年 4 月 10 日更新了这篇文章,并提供了新信息...
我有一个应用程序,我将云相册的内容复制到 IOS 设备上的本地相册。我正在使用以下代码:
func fetchFullSizeImageForAsset(asset:PHAsset) -> (UIImage)? { // get the image from an asset ( could be nil )
var myImage:UIImage?
let requestOptions = PHImageRequestOptions()
requestOptions.synchronous = true
requestOptions.networkAccessAllowed = true
requestOptions.deliveryMode = .HighQualityFormat
let screenSize: CGSize = UIScreen.mainScreen().bounds.size
let targetSize = CGSizeMake(screenSize.width, screenSize.height)
let imageManager = PHImageManager()
imageManager.requestImageForAsset(asset as PHAsset, targetSize: targetSize, // targetSize: PHImageManagerMaximumSize, gives a null image !
contentMode: .AspectFit, options: requestOptions, resultHandler: {
(result, info) -> Void in
myImage = result
})
return myImage
}
我的想法是用上面的代码获取myImage,并将其复制到一个新的本地相册中。
这有时会给我一个低质量的图像 (256 x 256),但有时我会得到一个高质量的图像 (640 x 640)。我在 10.10.3 上的新照片应用中查看了云相册图像,它们都是高质量 (640 x 640)
当我使用照片查看 iPad 上的共享相册时,只有当我单击它们时,图像才会变得高质量——这是预期的行为。
令我困惑的是,当我重新运行我的应用程序时,所有这些手动单击的图像然后以高质量导入!
这是 IOS8 上 PhotoKit 中的错误还是我遗漏了什么?