2016-04-26 9 views
0

NSURLが渡された後、私はイメージが私はこのようなUIImageを保存していますキャプチャされた後、デバイスのカメラを使って撮影し取得されUIImage、同じパスにUIImageを再保存する方法

-(void)onCapture:(UIImage *)image { 
    NSData *imageData = UIImageJPEGRepresentation(image, 1.0); 

    NSFileManager *filemanager = [NSFileManager defaultManager]; 
    NSString *pathToImage = [NSTemporaryDirectory() stringByAppendingPathComponent:@"my_photo_001.jpg"]; 

    [filemanager createFileAtPath:pathToImage contents:imageData attributes:nil]; 

    NSURL *imageFileUrl = [NSURL fileURLWithPath:pathToImage]; 
    [self.delegate onDone:imageFileUrl]; 
} 

を持っていますデリゲートは、このNSURLを画像編集ビューコントローラに渡します。UIImageとNSURLを編集ビューコントローラに渡します。編集が完了したら、編集したUIImageでNSURLに保存されているUIImageをオーバーライドします。私はこれをやっています。

NSData *imageData = UIImageJPEGRepresentation(self.editImage.image, 1.0); 
NSString *pathToImage = [pathOfCapturedImage absoluteString]; 
[imageData writeToFile:pathToImage atomically:YES]; 

NSURL *imageFileUrl = [NSURL URLWithString:pathToImage]; 

pathOfCapturedImageは、編集ビューコントローラに渡す変数です。

保存した後に画像を開くと、編集前の画像が開きますが、どこが間違っていますか?

+0

pl。編集した画像が正しく保存されているかどうかを確認してください。 –

+0

どうすれば確認できますか? –

+0

編集した画像を保存するときに、そのパスをコンソールに表示します。そのパスをコピーした後 - > Open finder - >コマンド+ Shift + Gを押してパスをペーストし、Enterキーを押して画像位置 –

答えて

0

古いファイルを最初に削除し、新しいファイルを書き込むことができます。

[[NSFileManager defaultManager] removeItemAtPath:filePath error:&error]; 
0

最初に古いイメージが削除され、同じパスに書き込まれます。

NSString* imagePath = @"image path"; // get path of old image. 

NSData *imgData = UIImageJPEGRepresentation(self.editImage.image, 1.0); // get data of edited image. please make sure if edited image is not nil. 


if ([[NSFileManager defaultManager] fileExistsAtPath:imagePath]) // check existence of old image, If yes then delete it. 
{ 
    [[NSFileManager defaultManager] removeItemAtPath:imagePath error:nil]; 
} 

if (imgData) 
    [imgData writeToFile:imagePath atomically:YES]; 
関連する問題