Iphone 写入文件时出现ImageIO错误
我试图保存UIImage,但它给了我一个错误。UIImage从UIImagePickerController中拾取,然后通过从中提取Iphone 写入文件时出现ImageIO错误,iphone,uiimage,nsdata,javax.imageio,writetofile,Iphone,Uiimage,Nsdata,Javax.imageio,Writetofile,我试图保存UIImage,但它给了我一个错误。UIImage从UIImagePickerController中拾取,然后通过从中提取NSData并在此NSData对象上调用WriteFile:来保存。 这样做时,我将得到一个错误。同样的方法可以完美地存储其他图像。我可以毫无问题地将从网站检索到的图像存储为字节数组,然后将其转换为UIImage并保存。 似乎该问题特定于来自UIImagePickerController的图像 有人能告诉我怎么解决这个问题吗 来自UIImagePickerContr
NSData
并在此NSData
对象上调用WriteFile:
来保存。
这样做时,我将得到一个错误。同样的方法可以完美地存储其他图像。我可以毫无问题地将从网站检索到的图像存储为字节数组,然后将其转换为UIImage并保存。
似乎该问题特定于来自UIImagePickerController
的图像
有人能告诉我怎么解决这个问题吗
来自UIImagePickerController
的图像似乎保存得很好,但我仍然收到此错误,导致应用程序崩溃:
5月1日10:38:05西蒙BS iPhone Diims[619]:图像IO: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];
}
如果代码有效,请尝试按以下方式更改代码:-
- (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
}
如果代码有效,请尝试按如下方式更改代码:-(无效)imagePickerController:(UIImagePickerController*)picker didFinishPickingImage:(UIImage*)图像编辑信息:(NSDictionary*)编辑信息{//Save image self.selectedDevice.image=image;[CDDeviceManager localUpdateDevice:self.selectedDevice委托:self];//关闭控制器[picker dismissModalViewControllerAnimated:YES];}//保存似乎起作用的图像后关闭。多谢各位。你能回答一下你的评论吗?嗨,西蒙斯,我已经发布了与答案相同的帖子。