0

以下のコードを使用して、Swift の iOS7 の ALAssetsLibrary から画像 (以前に UIImagePickerController から取得し、Assets Library に保存) をロードしようとしています。

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)
            })

let imageData = rep.fullResolutionImage() を使用すると、画像の正しい UIImageOrientation が得られますが、その行を let imageData = validAsset.thumbnail() に置き換えると、常に .Right Orientation が得られます。これは、UIImagePickerController を介して取得された画像でのみ発生します。なぜこれが起こっているのか、それを修正する方法についてのアイデアはありますか? UICollectionView のフル解像度の画像を読み込むのは面倒で、多くの時間とメモリが必要です。

サムネイルの正しい向きを取得するにはどうすればよいですか? ありがとう。

4

1 に答える 1