CGContext Errors/Warnings
cgcontext, ios, iphone, objective-c
Solution
`[activeView.layer renderInContext:UIGraphicsGetCurrentContext()];`
This line is the problem...you have no "current" context. Use `context` instead.
Problem
I have the following code to take a screenshot. I am specifically not using `UIGraphicsBeginImageContext`, because before I found that this uses an awful lot of memory: ``` CGSize size = activeView.frame.size; NSUInteger width = size.width; NSUInteger height = size.height; NSLog(@"BEFORE"); CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); unsigned char *rawData = malloc(height * width * 4); memset(rawData,0,height * width * 4); NSUInteger bytesPerPixel = 4; NSUInteger bytesPerRow = bytesPerPixel * width; NSUInteger bitsPerComponent = 8; CGContextRef context = CGBitmapContextCreate(rawData, width, height, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); CGRect bounds; bounds.origin = CGPointMake(0,0); bounds.size = size; CGContextDrawImage(context, CGRectMake(0, 0, size.width, size.height), [self.topimage CGImage]); CGContextDrawImage(context, CGRectMake(0, 0, size.width, size.height), [bottomimage CGImage]); CGImageRef imageRef = CGBitmapContextCreateImage(context); UIImage *latest = [UIImage imageWithCGImage:imageRef scale:0.0 orientation:UIImageOrientationDownMirrored]; [activeView.layer renderInContext:UIGraphicsGetCurrentContext()]; CGImageRef imageRef2 = CGBitmapContextCreateImage(context); UIImage *latest2 = [UIImage imageWithCGImage:imageRef2 scale:0.0 orientation:UIImageOrientationDownMirrored]; CGContextRelease(context); CGImageRelease(imageRef); CGImageRelease(imageRef2); NSLog(@"AFTER"); ``` In between the 'BEFORE' and 'AFTER' `NSLogs`, these errors/warnings appear: ``` <Error>: CGContextSaveGState: invalid context 0x0 <Error>: CGContextSetAlpha: invalid context 0x0 <Error>: CGContextSaveGState: invalid context 0x0 <Error>: CGContextSetFillColorWithColor: invalid context 0x0 <Error>: CGContextAddRect: invalid context 0x0 <Error>: CGContextDrawPath: invalid context 0x0 <Error>: CGContextRestoreGState: invalid context 0x0 <Error>: CGContextSaveGState: invalid context 0x0 <Error>: CGContextGetBaseCTM: invalid context 0x0 <Error>: CGContextConcatCTM: invalid context 0x0 <Error>: CGContextSetBaseCTM: invalid context 0x0 <Error>: CGContextSaveGState: invalid context 0x0 <Error>: CGContextClipToRect: invalid context 0x0 <Error>: CGContextSetAlpha: invalid context 0x0 <Error>: CGContextSaveGState: invalid context 0x0 <Error>: CGContextSetFillColorWithColor: invalid context 0x0 <Error>: CGContextAddRect: invalid context 0x0 <Error>: CGContextDrawPath: invalid context 0x0 <Error>: CGContextRestoreGState: invalid context 0x0 <Error>: CGContextSaveGState: invalid context 0x0 <Error>: CGContextConcatCTM: invalid context 0x0 <Error>: CGContextConcatCTM: invalid context 0x0 <Error>: CGContextClipToRect: invalid context 0x0 <Error>: CGContextDrawImage: invalid context 0x0 <Error>: CGContextRestoreGState: invalid context 0x0 <Error>: CGContextRestoreGState: invalid context 0x0 <Error>: CGContextSetBaseCTM: invalid context 0x0 <Error>: CGContextRestoreGState: invalid context 0x0 ``` Why is this happening?