イメージピッカー(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
{
}