Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 写入文件时出现ImageIO错误_Iphone_Uiimage_Nsdata_Javax.imageio_Writetofile - Fatal编程技术网

Iphone 写入文件时出现ImageIO错误

Iphone 写入文件时出现ImageIO错误,iphone,uiimage,nsdata,javax.imageio,writetofile,Iphone,Uiimage,Nsdata,Javax.imageio,Writetofile,我试图保存UIImage,但它给了我一个错误。UIImage从UIImagePickerController中拾取,然后通过从中提取NSData并在此NSData对象上调用WriteFile:来保存。 这样做时,我将得到一个错误。同样的方法可以完美地存储其他图像。我可以毫无问题地将从网站检索到的图像存储为字节数组,然后将其转换为UIImage并保存。 似乎该问题特定于来自UIImagePickerController的图像 有人能告诉我怎么解决这个问题吗 来自UIImagePickerContr

我试图保存UIImage,但它给了我一个错误。UIImage从UIImagePickerController中拾取,然后通过从中提取
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];}//保存似乎起作用的图像后关闭。多谢各位。你能回答一下你的评论吗?嗨,西蒙斯,我已经发布了与答案相同的帖子。