iPhone iOS guardando los datos obtenidos de UIImageJPEGRepresentation () falla la segunda vez: ImageIO: CGImageRead_mapData 'open' error

Estoy teniendo un problema extraño con mi manipulación de UIImage.

Estoy realizando una sincronización de Dropbox y tengo que almacenar mis imágenes como archivos locales. Para ello, los guardo utilizando elUIImagePNGRepresentation(image) oUIImageJPEGRepresentation(image, 0.66)

Aquí está mi flujo de trabajo típico: el usuario selecciona una imagen o toma una foto. La imagen se asigna a una imagen. El UIImage de la vista de la imagen se guarda en un archivo utilizando el método a continuación.

La próxima vez que el usuario vuelva a abrir la aplicación, leí la imagen del archivo usando

[UIImage imageWithContentsOfFile:fullImagePath]

Esto funciona una vez.

La segunda vez que ejecuto la rutina, aparece el mensaje de error que se indica a continuación al intentar guardar la imagen en el disco una vez más.

//saving the image
NSData* data = isPNG?UIImagePNGRepresentation(image):UIImageJPEGRepresentation(image, 0.66);
BOOL success =   [data writeToFile:filepath atomically:YES];
if(!success)
{
    DLog(@"failed to write to file: %@",filepath );
}


//loading the image
[UIImage imageWithContentsOfFile:fullImagePath]

Recibo este error cuando intento volver a guardar una imagen que se ha convertido previamente a JPEG o PNG

2012-05-21 08:16:06.680   file already exists: NO
ImageIO: CGImageRead_mapData 'open' failed '/var/mobile/Applications/C1312BF8-C648-4397-82F3-D93E4FAAD35F/Documents/imageData/LogoImage.jpg'
error = 2 (No such file or directory)
May 21 08:16:06  <Error>: ImageIO: JPEG Not a JPEG file: starts with 0xff 0xd9
May 21 08:16:06  <Error>: ImageIO: JPEG Application transferred too few scanlines

Me parece que este error está ocurriendo debido a que trato de volver a guardar la imagen como JPEG una vez más. Si le pido a la vista que se muestre en contexto (creando efectivamente una nueva imagen), el error no ocurre.

¿Alguien sabe lo que estoy haciendo mal? ¿Me estoy perdiendo algún tipo de metadatos al intentar convertir un UIImage en datos, volver a cargarlo e intentar convertirlo una vez más después de mostrarlo al usuario?

Respuestas a la pregunta(1)

Su respuesta a la pregunta