我正在创建一个应用程序以捕获屏幕的一小部分并将其与保存到磁盘的图像库进行比较。几年前,我在.net中编写了一个类似的应用程序,并使用了bitblt和WINAPI。性能真的很重要,如果它对性能有所影响,我不介意研究openGL。

最佳答案

您可以使用以下代码:

-(NSImage*)captureImageFromRect:(NSRect)captureRect
{
    NSImage *resultingImage = nil;
    CGImageRef image;
    CGWindowID  windowID = (CGWindowID)[[self window] windowNum];
    image = CGWindowListCreateImage(NSRectToCGRect(captureRect), kCGWindowListOptionIncludingWindow|kCGWindowListOptionOnScreenBelowWindow, windowID, kCGWindowImageDefault);
    resultingImage = [[NSImage alloc] initWithCGImage:image size:NSZeroSize];
    CGImageRelease(image);
    return [resultingImage autorelease];
}

关于cocoa - 如何选择屏幕区域并将其另存为CGimage或CIImage?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8726478/

10-13 06:13