UIImageJPEGRepresentación dando EXC_BAD_ACCESS

En mi aplicación estoy usando la camera y la biblioteca de fotos para get un UIImage,
este UIImage se networkingimensiona unas 20 veces su tamaño normal y luego establezco un object NSData basado fuera del UIImage.

_regularImage = [self resizeImage:_takenImage width:100 height:100]; -(UIImage *)resizeImage:(UIImage *)anImage width:(int)width height:(int)height { CGImageRef imageRef = [anImage CGImage]; CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef); if (alphaInfo == kCGImageAlphaNone) alphaInfo = kCGImageAlphaNoneSkipLast; CGContextRef bitmap = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(imageRef), 4 * width, CGImageGetColorSpace(imageRef), alphaInfo); CGContextDrawImage(bitmap, CGRectMake(0, 0, width, height), imageRef); CGImageRef ref = CGBitmapContextCreateImage(bitmap); UIImage *result = [UIImage imageWithCGImage:ref]; CGContextRelease(bitmap); CGImageRelease(ref); return result; } NSData *image1Data = UIImageJPEGRepresentation(_regularImage, 1); 

No puedo imaginar nada más que pueda causar esto

Gracias

LittleRy

El problema aquí puede ser que está creando su context de bitmap o UIImage de la manera incorrecta. Intente depurar y verificar si _regularImage es nulo o si no es válido. Para escalar una image, sugeriría usar una biblioteca de terceros llamada ANImageBitmapRep . Es un pequeño set de classs que permite recortar, cambiar el tamaño, rotar, etc. de imágenes fácilmente en el iPhone. La escala de un UIImage se puede hacer así:

 ANImageBitmapRep * irep = [ANImageBitmapRep imageBitmapRepWithImage:myImage]; [irep setSize:BMPointMake(myWidth, myHeight)]; // scale the image UIImage * theImage = [irep image]; [irep release]; NSData * jpeg = UIImageJPEGRepresentation(theImage, 1); 

Con este tipo de código dudo que UIImageJPEGRepresentation sea ​​el problema. La class ANImageBitmapRep maneja CGContextRef cosas CGContextRef , haciendo que su trabajo sea mucho más fácil.