-3

コードで画像ピッカーを作成するにはどうすればよいですか?

私はiOS 6.0をARCで使用しています。

写真を選択して、選択した画像の UIImage を何とか取得したいと思います。

4

3 に答える 3

3

基本的なインスタンス化は次のようになります

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setDelegate:self];
imagePicker.modalPresentationStyle = UIModalPresentationOverFullScreen;
[self presentViewController:imagePicker animated:YES completion:nil];

画像を取得する方法は 3 つあります

//Pick from Camera
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;//Make sure to enable permission for this in info.plist; see: https://stackoverflow.com/a/44690117/2057171

//Pick from all folders in the gallery
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

//Pick from PhotosAlbum(camera roll)
imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

次に、ソースの存在を確認します

//Check Camera available or not
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])

//Check PhotoLibrary available or not
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) 

//Check front Camera available or not
if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront])

ユーザーが選択した画像を取得するには、デリゲート プロトコルを実装する必要があります。

//Tells the delegate that the user picked a still image or movie.
 (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
  UIImage *selectedImage = [info objectForKey:UIImagePickerControllerOriginalImage];
  [imagepicker dismissModalViewControllerAnimated:YES];
}

//Tells the delegate that the user cancelled the pick operation.
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
}

UIImagePickerController を使用する簡単なチュートリアル

http://www.techotopia.com/index.php/An_Example_iOS_4_iPad_Camera_and_UIImagePickerController_Application_(Xcode_4)

于 2013-01-22T19:54:52.977 に答える
1

<UIImagePickerControllerDelegate>ファイルの@interface ViewController行にデリゲートを追加します.h

シミュレーターをデバッガーとして使用する場合は、シミュレーターに写真があることを確認してから、次のメソッドを呼び出します

- (void)showImagePicker
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.modalPresentationStyle = UIModalPresentationOverFullScreen;
    [self presentModalViewController:imagePicker animated:YES];
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    // Get the selected image.
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    [picker dismissModalViewControllerAnimated:YES];
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [picker dismissModalViewControllerAnimated:YES];
}
于 2013-01-22T19:52:27.857 に答える
0

それを提示するには:

UIImagePickerController *picker;
picker = [[UIImagePickerController alloc] init];
[picker setDelegate:self];
[picker setSourceType:type];

[self presentViewController:picker animated:YES completion:nil];

UIImage を取得するには:

- (void)imagePickerController:(UIImagePickerController *)thePicker didFinishPickingMediaWithInfo:(NSDictionary *)info
{   
    // Do something with "image"
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    // users typically expect that if they took a photo it will be saved
    if (thePicker.sourceType == UIImagePickerControllerSourceTypeCamera) {
        UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
    }

}
于 2013-01-22T19:50:31.573 に答える