Reputation: 46310
I need a way of capturing a view or the screen with everything just exactly like it appears on screen. -renderInContext: won't do that. Are there any alternatives to this?
Upvotes: 2
Views: 2095
Reputation: 19789
Several, but start with:
UIGetScreenImage();
Which returns a CGImageRef. If you use this, note that the image is retained, and you should release it.
Edit:
Add for completeness the main other way to do this:
UIWindow *aWindow = [[UIApplication sharedApplication].windows objectAtIndex:0];
UIGraphicsBeginImageContext(aWindow.frame.size);
[[aWindow layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Upvotes: 1