0

UIImagePickerController に画像を保存する方法について少し質問があります。

次のコードで試しました:

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

if (takePhotoSave == 1) {
    takePhotoSave = 0;

    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
    [picker dismissViewControllerAnimated:YES completion:NULL];
} }

エラーは表示されませんが、画像は保存されません

どうもありがとうございました

4

2 に答える 2

0

ここでの問題は、完了目標を設定していないことです。

UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);

これは私にとっては完璧に機能するので、問題を解決するはずです。

完了ターゲットを設定して、正しく保存されていることを確認することもできます。

// Save image
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:), nil);

// エラーが発生したかどうかを確認します

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error {

    // Unable to save the image
    if (error) {

    }
    // All is well
    else {

    }
}

お役に立てれば

于 2015-01-27T00:19:46.443 に答える
0
NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
[self dismissViewControllerAnimated:NO completion:nil];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];

if (CFStringCompare ((__bridge_retained CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo){
        UIImage* image = [info objectForKey:UIImagePickerControllerOriginalImage];
        UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);

        //save to document directory
        NSData *pngData = UIImagePNGRepresentation([self imageWithImage:image scaledToSize:CGSizeMake(image.size.width/5, image.size.height/5)]);
        NSString *filePath = [documentsPath stringByAppendingPathComponent:@"image_test.png"]; //Add the file name
        [pngData writeToFile:filePath atomically:YES]; //Write the file


    }

写真に保存するために必要なものはこれだけです。uiimage として保存する場合は、以下を参照してください。

if ([NSData dataWithContentsOfFile:[self documentsPathForFileName:@"image_test.png"]]) {

    NSData* pngData = [NSData dataWithContentsOfFile:[self documentsPathForFileName:@"image_test.png"]];
    UIImage* image = [UIImage imageWithData:pngData];


    UIImageView* imageView = [[UIImageView alloc] initWithImage:image];
    [imageView setFrame:CGRectMake(0.0, 0.0, imageView.image.size.width, imageView.image.size.height)];
    [imageView setCenter:self.view.center];
    [self.view addSubview:imageView];

}
于 2013-09-17T19:09:40.373 に答える