2014-07-04 7 views
0

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.

Répondre

2

Avez-vous essayé quelque chose comme:

UIImage(CGImage:asset?.aspectRatioThumbnail().takeUnretainedValue()) 

aspectRatioThumbnail() vous donne une vignette qui ont le même rapport et de l'orientation que l'image en pleine résolution.

Comme vous avez utilisé les paramètres d'échelle et d'orientation pour UIImage init et obtenu une mauvaise orientation, j'ai ensuite essayé sans et l'orientation est toujours correcte.

+0

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. –

Questions connexes