Je suis en train de charger des images (prises précédemment du UIImagePickerController et enregistrés à l'actif) Bibliothèque de la ALAssetsLibrary à Swift dans iOS 7 en utilisant le code ci-dessous:ALAsset Miniature iOS 7 Une mauvaise orientation
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)
})
Lorsque j'utilise let imageData = rep.fullResolutionImage(), j'obtiens le UIImageOrientation correct pour l'image, mais quand je remplace cette ligne par let imageData = validAsset.thumbnail(), je reçois toujours une orientation .Right. Cela se produit uniquement avec les images prises via UIImagePickerController. Toutes les idées sur pourquoi cela se passe et comment y remédier? Le chargement d'une image en pleine résolution pour un UICollectionView est une perte de temps et prend beaucoup de temps et de mémoire.
Comment puis-je obtenir la bonne orientation de la vignette? Merci.
C'est ce que j'ai fini par faire. J'ai oublié de revenir ici et de marquer la réponse correcte. J'espère que ça va aider les autres. Merci d'avoir répondu. –