0

UIImage を保存しようとしていますが、エラーが発生します。UIImage は UIImagePickerController から選択され、それから作成してこのオブジェクトNSDataを呼び出すことで保存されます。そうすると、エラーが発生します。同じ方法で、他の画像を完全に保存します。問題なく保存できる画像は、Webサイトからバイト配列として取得され、UIImageに変換されて保存されます。この問題は、.writeToFile:NSDataUIImagePickerController

どうすればこれを修正できるか教えてもらえますか?

からの画像UIImagePickerControllerは正常に保存されているようですが、アプリケーションがクラッシュする原因となる次のエラーが引き続き発生します。

5 月 1 日 10:38:05 Simon-BS-iPhone Diims[619]: ImageIO: JPEG 破損した JPEG データ: データ セグメントの早期終了

これは、画像を保存するために使用されるコードです。

+ (void)storeImage:(UIImage *)image name:(NSString *)name
{
    NSString *pathForCache = [self pathForCache];
    NSData *imageData = [NSData dataWithData:UIImageJPEGRepresentation(image, 1.0f)];
    NSString *jpegPath = [pathForCache stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.jpeg", name]];

    NSError *error;
    if ([imageData writeToFile:jpegPath options:NSDataWritingAtomic error:&error] == NO)
    {
        DLog(@"Could not save image: %@", jpegPath);
        DLog(@"%@", error);
    }
}

画像が選択されると、次のように呼び出されます。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
    // Close controller
    [picker dismissModalViewControllerAnimated:YES];

    // Save image
    self.selectedDevice.image = image;
    [CDeviceManager localUpdateDevice:self.selectedDevice delegate:self];
}
4

1 に答える 1

1

動作する場合は、次のようにコードを変更してみてください:-

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
 {
       // Save image self.selectedDevice.image = image;
       [CDeviceManager localUpdateDevice:self.selectedDevice delegate:self];

       // Close controller [picker dismissModalViewControllerAnimated:YES];
       //dismiss after saving the image
  }
于 2012-05-01T10:35:41.987 に答える