ブログ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];

}

カメラ機能が使えると何かと便利に思えます。

PAGE TOP