ブログBlog
カメラ機能呼び出し
投稿日:2017年03月03日
ヌノです。
iosでカメラ機能の呼び方をご紹介します。
一見難しそうに思えますが、単純にカメラ機能を呼び出して撮影し、保存するだけなら簡単にできます。
// カメラを開く
– (IBAction)cameraButtonTouched:(id)sender {
// カメラが利用できるか確認
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc]init];
// カメラかライブラリからの読込指定。カメラを指定。
[imagePickerController setSourceType:UIImagePickerControllerSourceTypeCamera];
// トリミングなどを行うか否か
[imagePickerController setAllowsEditing:YES];
// Delegateの設定
[imagePickerController setDelegate:self];
// アニメーションをしてカメラUIを起動
[self presentViewController:imagePickerController animated:YES completion:nil];
}
}
[imagePickerController setSourceType:UIImagePickerControllerSourceTypeCamera];
のsetSourceTypeの値によって読込先が異なります
UIImagePickerControllerSourceTypePhotoLibrary→フォトライブラリから
UIImagePickerControllerSourceTypeCamera→カメラから取得(カメラ起動)
UIImagePickerControllerSourceTypeSavedPhotosAlbum→アルバム(カメラロール)から取得
取得(撮影)したあとの処理はこちらになります
// 写真撮影後、もしくはフォトライブラリでサムネイル選択後に呼ばれるDelegate
– (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
// 画像取得
UIImage *image = (UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage];
// カメラから呼ばれたか判別
if(picker.sourceType == UIImagePickerControllerSourceTypeCamera){
// 画像をフォトライブラリに保存する
UIImageWriteToSavedPhotosAlbum(saveImage, nil, nil, nil);
}
else
{
// フォトライブラリから呼ばれた場合の処理をここに書く
}
// カメラを閉じる
[self dismissViewControllerAnimated:YES completion:nil];
}
カメラ機能が使えると何かと便利に思えます。