Как выбрать область экрана и сохранить ее как CGimage или CIImage? - PullRequest
1 голос
/ 04 января 2012

Я создаю приложение для захвата небольшой области экрана и сравнения ее с библиотекой изображений, сохраненных на диске. Я написал подобное приложение несколько лет назад в .net и использовал bitblt и WINAPI. Производительность действительно важна, и я не против углубиться в openGL, если это повлияет на производительность.

1 Ответ

3 голосов
/ 04 января 2012

Вы можете использовать такой код:

-(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];
}
...