2009-11-06 12 views
7

¿Alguien tiene alguna idea de cómo puedo capturar pantalla utilizando el objetivo c en mac os? para ser más específico, cómo puedo capturar la pantalla de la aplicación activa/enfocada y luego crear una imagen en una ruta especificada.
Cualquier ayuda es muy apreciada.captura de pantalla con el objetivo c para mac

Respuesta

4

¿Has comprobado el “Son of Grab” de Apple para capturar imágenes de ventanas con la aplicación CGWindow?

+1

sí, lo he visto, soy bastante nuevo en Objective C , Hijo de Grab es un poco difícil para mí. mi requisito es muy simple, crear una aplicación que se ejecute en segundo plano, al cumplir ciertos criterios, solo capturar la ventana enfocada actual y crear una imagen en una ruta especificada – Daniel

1

También puede comprobar de Apple OpenGLScreenSnapshot

7

@ Daniel, No es necesario entender y poner en práctica todo el "Hijo de Grab". Solo necesitas el código a continuación.

La función siguiente le dará la pantalla

// 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); 

Utilice el código siguiente para convertirlo en un 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; 
Cuestiones relacionadas