-3

カメラアプリを起動する次のコードがあり、ユーザーは「写真を使用」を選択できます。しかし、何も起こりません。

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == YES) {
        UIImagePickerController *imagePickerController = [[UIImagePickerController alloc]init];
        imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;

        [self presentModalViewController:imagePickerController animated:YES];
    } 

これからUIimageを取得してフォトアルバムに保存するにはどうすればよいですか。理想的には、これをドキュメント ディレクトリに保存し、その部分を実行する方法を知りたいと思います。ありがとう!

4

4 に答える 4

2

次のコードを使用します。

 - (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{

    UIImage  *image =  [info objectForKey:UIImagePickerControllerOriginalImage];
    NSData * imageData = UIImagePNGRepresentation(image);

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
    [imageData writeToFile:savedImagePath atomically:NO];

    [picker dismissViewControllerAnimated:YES completion:nil];
}
于 2013-10-26T08:38:40.830 に答える
1

どのタイプのオブジェクトの addImageOutlet

于 2015-10-21T07:28:58.723 に答える
1

参考になると思いますが、

 //you have to set the delegate which clicking the button of camera

 imagePickerController.delegate = self;


//This Delegate method will call

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{

    [picker dismissViewControllerAnimated:YES completion:nil];
    UIImage* selectedImage =  [info objectForKey:UIImagePickerControllerOriginalImage];

   NSString *path = [[self pathToPatientPhotoFolder] stringByAppendingPathComponent:[NSString stringWithFormat:@"imageName.png"]];

   NSError * error11 = nil;

   [post.getData writeToFile:path options:NSDataWritingAtomic error:&error11];

}



//This method is useful for the get the Documentry path

    - (NSString *)pathToPatientPhotoFolder {
        NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                                            NSUserDomainMask,
                                                                            YES) lastObject];
        NSString *myalbumpath = [documentsDirectory stringByAppendingPathComponent:@"MYAlbum"];

        // Create the folder if necessary
        BOOL isDir = NO;
        NSFileManager *fileManager = [[NSFileManager alloc] init];
        if (![fileManager fileExistsAtPath:myalbumpath
                               isDirectory:&isDir] && isDir == NO) {
            [fileManager createDirectoryAtPath:myalbumpath
                   withIntermediateDirectories:NO
                                    attributes:nil
                                         error:nil];
        }
        return myalbumpath;
    }

コーディングを楽しむ

于 2013-10-26T08:25:51.200 に答える