UIImage を保存しようとしていますが、エラーが発生します。UIImage は UIImagePickerController から選択され、それから作成してこのオブジェクトNSData
を呼び出すことで保存されます。そうすると、エラーが発生します。同じ方法で、他の画像を完全に保存します。問題なく保存できる画像は、Webサイトからバイト配列として取得され、UIImageに変換されて保存されます。この問題は、.writeToFile:
NSData
UIImagePickerController
どうすればこれを修正できるか教えてもらえますか?
からの画像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];
}