Skip to content

Instantly share code, notes, and snippets.

@fernyb
Created March 28, 2011 05:39
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save fernyb/890044 to your computer and use it in GitHub Desktop.
Save fernyb/890044 to your computer and use it in GitHub Desktop.
NSWindow Categories to get screen capture of NSWindow including the shadow
@interface NSWindow (FRBExtra)
- (NSImage *)windowImage;
- (CGImageRef)windowImageShot;
@end
@implementation NSWindow (FRBExtra)
- (NSImage *)windowImage
{
NSImage * image = [[NSImage alloc] initWithCGImage:[self windowImageShot] size:[self frame].size];
[image setDataRetained:YES];
[image setCacheMode:NSImageCacheNever];
return [image autorelease];
}
- (CGImageRef)windowImageShot
{
CGWindowID windowID = (CGWindowID)[self windowNumber];
CGWindowImageOption imageOptions = kCGWindowImageDefault;
CGWindowListOption singleWindowListOptions = kCGWindowListOptionIncludingWindow;
CGRect imageBounds = CGRectNull;
CGImageRef windowImage = CGWindowListCreateImage(imageBounds, singleWindowListOptions, windowID, imageOptions);
return (CGImageRef)[NSMakeCollectable(windowImage) autorelease];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment