porque mis las fototeca fotos descargar desaparecieron desactivo cargan carga borran apple ios objective-c uiimageview uiimage

ios - mis - Recepción de advertencia de memoria en iPad después de dibujar líneas en una imagen de gran tamaño con CGContextRef



porque las fotos de mi iphone no cargan (1)

Solo la imagen requerirá 54MB de memoria (3000 * 4500 * 4).

Como solo se puede mostrar una parte a la vez, considere dividir la imagen en varias secciones, como mosaicos de mapas, tal como se utiliza en Apple Maps.

Estoy dibujando líneas en UIImage usando CGContextRef.Mis imágenes tienen una resolución muy grande como 3000x4500. No me da una advertencia de memoria si dibujo una sola línea, pero si dibujo más de una línea, me da una advertencia de memoria y después que mi aplicación falla. Intenté liberar el objeto CGContextRef pero recibí un error. Mi código :

UIGraphicsBeginImageContext(imageView.image.size); [imageView.image drawAtPoint:CGPointMake(0, 0)]; context2=UIGraphicsGetCurrentContext(); for(int i=0; i<kmtaObject.iTotalSize; i++) { kmtaGroup=&kmtaObject.KMTA_GROUP_OBJ[i]; //NSLog(@"Group # = %d",i); for (int j=0; j<kmtaGroup->TotalLines; j++) { lineObject=&kmtaGroup->Line_INFO_OBJ[j]; // NSLog(@"Line # = %d",j); // NSLog(@"*****************"); x0 = lineObject->x0; y0= lineObject->y0; x1= lineObject->x1; y1= lineObject->y1; color= lineObject->Color; lineWidth= lineObject->LinkWidth; lineColor=[self add_colorWithRGBAHexValue:color]; linearColor=lineColor; // Brush width CGContextSetLineWidth(context2, lineWidth); // Line Color CGContextSetStrokeColorWithColor(context2,[linearColor CGColor]); CGContextMoveToPoint(context2, x0, y0); CGContextAddLineToPoint(context2, x1, y1); CGContextStrokePath(context2); } } newImage=UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); imageView.image=newImage;