ふるすたっくえんじにあっぽい人の日記

ASP .NET MVC (C#)、.NET Framework、iOS (Objective-c) アプリ、Androidアプリ (Java)、AWS、たまにLAMPとかプロジェクトマネジメントあたりのお話

【iOS】カメラ・アルバムからの画像取得

連チャンで記事を書くのも疲れてきましたが、まだまだいきます!
アプリ内からカメラ起動したり、アルバムから画像取得をする方法!

実装はViewControllerへ。
ヘッダーには
@interface HogeViewController : ViewController
みたいな感じで。

UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init]; 
imagePicker.delegate = self;

// こっちがカメラを起動する場合
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
else {
    // カメラがないデバイス
}

// こっちがアルバムを起動する場合
 imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

// ImagePickerの表示
 [self presentViewController:imagePicker animated:YES completion:nil];


んで、撮影したり、画像を選択したりすると以下のdelegateメソッドが呼び出されます。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    // 撮影または選択された画像
    UIImage *image = (UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage];

   // 撮影した場合はアルバムに保存
    if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
        UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
    }
    // 後は煮るなり、焼くなりご自由に・・・
}