どうも。
UIImagePickerControllerを使って、
フォトアルバムから画像を引っ張ってくる。
というのも頻出。
その時に、
画像の本体とは別に、
カメラロールで表示されてるサムネイルが欲しい、
ということもあったりする。
そんなときは、
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
の中で、
NSURL* refUrl = [info objectForKey:UIImagePickerControllerReferenceURL];
ALAssetsLibrary *assetsLib = [[ALAssetsLibrary alloc] init];
[assetsLib assetForURL:refUrl resultBlock:^(ALAsset *asset) {
// カメラロールで表示されているサムネイルを取得
thumbnailImage = [[UIImage alloc] initWithCGImage:[asset thumbnail]];
} failureBlock:^(NSError *error) {
// error handling
}];
ALAssetsLibrary *assetsLib = [[ALAssetsLibrary alloc] init];
[assetsLib assetForURL:refUrl resultBlock:^(ALAsset *asset) {
// カメラロールで表示されているサムネイルを取得
thumbnailImage = [[UIImage alloc] initWithCGImage:[asset thumbnail]];
} failureBlock:^(NSError *error) {
// error handling
}];
なんてしてやれば、OK。
サムネイルでなく、普通に画像取得したい場合は、
上記のような面倒なことしなくても、
selectedImage = [info objectForKey:UIImagePickerControllerOriginalImage];
などとしてやれば一発。
thumbnailImageやselectedImageは、
UIImage* として、
画面のメンバ変数かなんかで定義してあるものとして。
諸般の事情から、
一定の範囲内にリサイズする。
という要件もセットだったりするが、
それについては下記のエントリを参照。
http://synonym-of-raspberry.blogspot.jp/2014/01/iosobjective-cuiimage.html
それでは。
ちゃお☆
まこぴー。