- ベストアンサー
Swiftでカメラロールの写真を取得する方法
- カメラロールの写真を取得する方法について調査しましたが、90度回転して読み込まれる問題が解決できませんでした。
- UIImageの引数に関して理解が不足しており、向きやサイズの取得方法もわかりません。
- aseetArrayという配列から写真を読み込んで表示する関数を作成しました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
http://techtechwalker.blogspot.jp/2013/12/iosalassettips.html に書かれているように、 ALAssetRepresentationには、fullResolutionImageと一緒にscaleやorientationの情報も入っていますので、それを指定すればいいです。 ただし、swiftで実装する場合、型チェックが厳しいので型変換が必要になります。 Xcode7.3(swift2.2)なら、以下のコードで正しく表示されました。 let assetRep = assetImg.defaultRepresentation() let iref = assetRep.fullResolutionImage().takeUnretainedValue() let scale = CGFloat(assetRep.scale()) let orientation = UIImageOrientation(rawValue: assetRep.orientation().rawValue)! let image = UIImage(CGImage: iref, scale: scale, orientation: orientation)
その他の回答 (1)
- Lchan0211b
- ベストアンサー率61% (573/930)
> ALAssetRepresentationがどんな情報をもってるかなど、クラスがもってる情報などを学ぶにはどうしたらいいですか? Appleのリファレンスです。これがiOS開発者の唯一のバイブルです。 ALAssetRepresentationなら https://developer.apple.com/library/ios/documentation/AssetsLibrary/Reference/ALAssetRepresentation_Class/ にあります。 これは、Xcodeのソースコード上で「ALAssetRepresentation」と書いてある文字列をOption+Clickするだけでも表示できます。そこにはALAssetRepresentationでできることが全部網羅して書かれてあるので、そのクラスで何がどこまでできるか(そこに書かれていないことはできない)ということもわかります。 一般のWebサイトの解説は、何ができるかをわかりやすく解説してくれますが、何ができないかまではわかりません。 なので一般のWebサイトの解説でやり方を理解したら、そこで使われているクラスのリファレンスをちゃんと読んで、その方法で何がどこまでできるのかを把握しておくことは重要です。そこまでやらないと本当に理解したことにはならず、応用ができません。 しかし、今回の問題を解決するのに必要なのは検索力です。 今回なら、ALAssetライブラリを使って取得した画像の向きが正しくないのでUIImage生成時にorientationを指定したいということですから、googleで「ALAsset orientation」を検索するだけで今回紹介した記事が検索結果のトップに表示されます。 問題解決のための検索力を身につけて、検索で得た情報でどこまでできるのかをAppleのリファレンスで確認する応用力を身につければ、開発力は上がっていくと思います。
お礼
ありがとうございます。リファレンスで勉強します。
お礼
ありがとうございます。 教えていただいたコードで、写真の向きを取得できて、UIImageの向きをもたせることができました。
補足
教えていただいたことへの質問ですが、ALAssetRepresentationがどんな情報をもってるかなど、クラスがもってる情報などを学ぶにはどうしたらいいですか?