イメージピッカー(UIImagePickerController)の使い方
イメージピッカーでカメラを利用したり、フォトライブラリから画像を取得することができます。
まずは定義から。
UIImagePickerControllerDelegateのデリゲートを定義します。
@interface CameraViewController :UIViewController{ 省略 }
実際にインスタンスを生成して表示するところです。
流れは
1.インスタンス生成
2.alloc,init
3.プロパティの設定
4.表示
です。
最低限必要なプロパティはソースタイプとデリゲートです。
UIImagePickerController* imagePicker; imagePicker = [[UIImagePickerController alloc] init]; [imagePicker autorelease]; imagePicker.sourceType = sourceType; imagePicker.delegate = self; [self presentModalViewController:imagePicker animated:YES];
ソースタイプは下記の3つが設定できます
- UIImagePickerControllerSourceTypePhotoLibrary
PhotoLibraryから選択
- UIImagePickerControllerSourceTypeCamera
カメラを利用
- UIImagePickerControllerSourceTypeSavedPhotosAlbum
SavedPhotosAlbumから選択
ここで一つ問題が。
iPhoneならいいですが、iPod Touchにはカメラがありません。
そこで事前にカメラが使える機種か判別する必要があります。下記のようにUIImagePickerControllerのisSourceTypeAvailableを使うことが判別することができます。
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { // カメラが使える機種 } else { // カメラが使えない機種 }
デリゲートメソッドは下記の通りです。
// イメージピッカーで画像を取得したとき - (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info { // イメージを取得 UIImage* originalImage; originalImage = [info objectForKey:UIImagePickerControllerOriginalImage]; } // イメージピッカーでキャンセルを押されたとき - (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker { }