I am capturing images in application and my app getting Received memory warning and app getting crash Below is code am using ... please help. this application is like pick images from gallery and add animation to them . while animation is running will capture images and make them video.
I am getting memory warning when capturing images while animation..
-(void)captureImage:(NSTimer*) t {
NSLog(@"captureImage");
// Create a graphics context with the target size
// On iOS 4 and later, use UIGraphicsBeginImageContextWithOptions to take the scale into consideration
// On iOS prior to 4, fall back to use UIGraphicsBeginImageContext
CGSize imageSize = CGSizeZero;
UIInterfaceOrientation orientation =
[UIApplication sharedApplication].statusBarOrientation;
if (UIInterfaceOrientationIsPortrait(orientation)) {
imageSize = [UIScreen mainScreen].bounds.size;
NSLog(@"imageSize:%@ ",NSStringFromCGSize(imageSize));
} else {
imageSize =
CGSizeMake([UIScreen mainScreen].bounds.size.height,
[UIScreen mainScreen].bounds.size.width);
//CGSizeMake(animatedImgView.frame.size.width, animatedImgView.frame.size.height);//
}
UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
for (UIWindow *window in [[UIApplication sharedApplication] windows]) {
CGContextSaveGState(context);
CGContextTranslateCTM(context, window.center.x, window.center.y);
CGContextConcatCTM(context, window.transform);
CGContextTranslateCTM(context,
-window.bounds.size.width * window.layer.anchorPoint.x,
-window.bounds.size.height * window.layer.anchorPoint.y);
if (orientation == UIInterfaceOrientationLandscapeLeft) {
CGContextRotateCTM(context, M_PI_2);
CGContextTranslateCTM(context, 0, -imageSize.width);
} else if (orientation == UIInterfaceOrientationLandscapeRight) {
CGContextRotateCTM(context, -M_PI_2);
CGContextTranslateCTM(context, -imageSize.height, 0);
} else if (orientation == UIInterfaceOrientationPortraitUpsideDown) {
CGContextRotateCTM(context, M_PI);
CGContextTranslateCTM(context, -imageSize.width, -imageSize.height);
}
if
([window
respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)]) {
[window drawViewHierarchyInRect:window.bounds afterScreenUpdates:NO];
//[animatedImgView drawViewHierarchyInRect:window.bounds afterScreenUpdates:NO];
} else {
//[window.layer.presentationLayer renderInContext:context];
}
CGContextRestoreGState(context);
}
// @autoreleasepool {
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[savedImages addObject:image];
image = nil;
// }
}
Help is appreciated...