0
我想用下面的代码加载从ALAssetsLibrary在iOS7图像(从早期的UIImagePickerController拍摄并保存在图书馆的资产)的斯威夫特:iOS7 ALAsset缩略图不正确的方向
assetsLibrary.assetForURL(NSURL(string: image.diskPath), resultBlock: {
asset in
if let validAsset = asset {
let rep = validAsset.defaultRepresentation()
let imageData = rep.fullResolutionImage()
//let imageData = validAsset.thumbnail()
var imageOrientation: UIImageOrientation = .Down
let orientValueFromImage = validAsset.valueForProperty("ALAssetPropertyOrientation") as NSNumber
imageOrientation = UIImageOrientation.fromRaw(orientValueFromImage.integerValue)!
let imageToAdd = UIImage(CGImage: imageData.takeUnretainedValue(), scale: 1, orientation: imageOrientation)
self.imagesForCollectionView.append(imageToAdd)
fetchedImageCount++
if fetchedImageCount == fetchedImages.count{
self.collectionView.reloadData()
}
}
}, failureBlock: {error in
NSLog("error %@", error.debugDescription)
})
当我使用让imageData = rep.fullResolutionImage(),我得到正确的UIImageOrientation图像,但是当我用let imageData = validAsset.thumbnail()替换那一行时,我总是得到一个.Right方向。只有通过UIImagePickerController拍摄的图像才会发生这种情况。 任何想法,为什么发生这种情况,以及如何解决它?加载UICollectionView的完整分辨率图像是一件令人失望的事情,需要花费大量的时间和内存。
如何获得缩略图的正确方向?谢谢。
这就是我最终做的。我忘了回到这里,并正确地标记答案。希望它能帮助别人。感谢您的回应。 –