2009-11-06 12 views
7

Qualcuno ha idea di come posso acquisire lo schermo utilizzando l'obiettivo c in mac os? per essere più specifici, come posso catturare la schermata dell'applicazione attiva/focalizzata, quindi creare un'immagine in un percorso specificato.
Qualsiasi aiuto è molto apprezzato.acquisizione dello schermo utilizzando l'obiettivo c per mac

risposta

4

Avete controllato il codice “Son of Grab” di Apple per l'acquisizione di immagini di Windows con l'API di CGWindow?

+1

sì, l'ho visto, io sono piuttosto nuovo per Objective C , Son of Grab è un po 'difficile per me. il mio requisito è molto semplice, creare un'app che funzioni in background, nel soddisfare determinati criteri, basta catturare la finestra focalizzata corrente e creare un'immagine su un percorso specificato – Daniel

1

È possibile anche controllare di Apple OpenGLScreenSnapshot

7

@ Daniel, Non hai bisogno di capire e realizzare l'intero "Figlio di Grab". Hai solo bisogno del codice qui sotto.

La funzione di seguito vi darà la schermata

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

Utilizzare il seguente codice per convertirlo in 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; 
Problemi correlati