8

有谁知道如何在mac os中使用objective c捕获屏幕?更具体地说,如何捕获活动/聚焦的应用程序屏幕,然后将图像创建到指定路径中。
非常感谢任何帮助。

4

3 回答 3

10

@Daniel,您无需了解和实施整个“抢夺之子”。你只需要下面的代码。

以下功能将为您提供屏幕截图

// This just invokes the API as you would if you wanted to grab a screen shot. The equivalent using the UI would be to
// enable all windows, turn off "Fit Image Tightly", and then select all windows in the list.
CGImageRef screenShot = CGWindowListCreateImage(CGRectInfinite, kCGWindowListOptionOnScreenOnly, kCGNullWindowID, kCGWindowImageDefault);

使用以下代码将其转换为 NSImage

NSBitmapImageRep *bitmapRep = [[NSBitmapImageRep alloc] initWithCGImage:screenShot];
// Create an NSImage and add the bitmap rep to it...
NSImage *image = [[NSImage alloc] init];
[image addRepresentation:bitmapRep];
[bitmapRep release];
bitmapRep = nil;
于 2011-09-23T10:25:22.067 回答
4
于 2009-11-06T14:30:25.793 回答
1

您还可以查看 Apple 的 OpenGLScreenSnapshot

于 2010-09-03T06:11:24.127 回答