Screenshot programaticamente

12 views
Skip to first unread message

Jair Gaxiola

unread,
Aug 18, 2011, 1:27:33 AM8/18/11
to cocoah...@googlegroups.com
Hola,

Alguien ha generado screenshot a mano desde objective-c sobre una app
para desktop? he intentando con el link
(http://www.cocoadev.com/index.pl?HowToAcquireScreenshots) pero solo
me crear una imagen con fondo gris

--
SIN ETIQUETAS.[ PUNTO ]
http://flavors.me/jyr
http://pythoncocoa.com
http://opentumblr.com

Juan Pablo Ortiz Aréchiga

unread,
Aug 18, 2011, 1:44:48 AM8/18/11
to cocoah...@googlegroups.com
No estoy seguro cual es el estado de este API en PyObjC, pero puedes utilizar el método CGDisplayCreateImage que supuestamente debe estar disponible desde Snow Leopard.

http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/Quartz_Services_Ref/Reference/reference.html%23//apple_ref/doc/uid/TP30001070-CH202-SW14

Más info: http://developer.apple.com/library/mac/#qa/qa1741/_index.html

Fernando Barajas

unread,
Aug 18, 2011, 1:54:07 AM8/18/11
to cocoah...@googlegroups.com
Yo si generado un screenshot de mi NSWindow lo apprendi despues de mirar a SonOfGrab ejemplo de apple.
Y escribi un Category methods para optener la screenshot de qualquier window. Aqui esta en mi blog.
http://fernyb.net/blog/2011/03/29/capture-nswindow-screenshot/

Sent from my iPhone

Jair Gaxiola

unread,
Aug 18, 2011, 5:04:54 PM8/18/11
to cocoah...@googlegroups.com
On Thu, Aug 18, 2011 at 12:54 AM, Fernando Barajas <fer...@gmail.com> wrote:
> Yo si generado un screenshot de mi NSWindow lo apprendi despues de mirar a SonOfGrab ejemplo de apple.
> Y escribi un Category methods para optener la screenshot de qualquier window.  Aqui esta en mi blog.
> http://fernyb.net/blog/2011/03/29/capture-nswindow-screenshot/
>

Bien, ya he leido SonOfGrab y el codigo que hiciste, ahora como puedo
saber en donde me genera la imagen? Tengo mi linea

screenShot = CGWindowListCreateImage(CGRectInfinite,
kCGWindowListOptionAll, kCGNullWindowID, kCGWindowImageDefault)

pero no veo donde se coloque la imagen, me faltara algo mas?

Jair Gaxiola

unread,
Aug 20, 2011, 12:31:52 AM8/20/11
to cocoah...@googlegroups.com
2011/8/18 Jair Gaxiola <jyr.g...@gmail.com>:

> On Thu, Aug 18, 2011 at 12:54 AM, Fernando Barajas <fer...@gmail.com> wrote:
>> Yo si generado un screenshot de mi NSWindow lo apprendi despues de mirar a SonOfGrab ejemplo de apple.
>> Y escribi un Category methods para optener la screenshot de qualquier window.  Aqui esta en mi blog.
>> http://fernyb.net/blog/2011/03/29/capture-nswindow-screenshot/
>>
>
> Bien, ya he leido SonOfGrab y el codigo que hiciste, ahora como puedo
> saber en donde me genera la imagen?  Tengo mi linea
>
> screenShot = CGWindowListCreateImage(CGRectInfinite,
> kCGWindowListOptionAll, kCGNullWindowID, kCGWindowImageDefault)
>
> pero no veo donde se coloque la imagen, me faltara algo mas?

Fernando, Juan Pablo lo que pusieron me sirvio para llegar a mi
respuesta. Tengo la solucion en
https://github.com/jyr/pythoncocoa-examples/tree/master/ScreenShot

Gracias y saludos

Fernando Barajas

unread,
Aug 20, 2011, 1:28:44 AM8/20/11
to cocoah...@googlegroups.com
Yo pongo es screenShot an un NSImage y despues lo puedo ensenar en un NSImageView.

Ejemplo:
NSImage * image = [[NSImage alloc] initWithCGImage:[self windowImageShot] size:[self frame].size];

El method:
[self windowImageShot] en mi caso es el screenShot que es un CGImageRef y es lo que CGWindowListCreateImage regresa.


2011/8/19 Jair Gaxiola <jyr.g...@gmail.com>

Jair Gaxiola

unread,
Aug 24, 2011, 5:38:22 PM8/24/11
to cocoah...@googlegroups.com
Retomando lo del screen.

Ya lo crea la aplicacion solo tengo un detalle, cuando ejecuta por
primera vez la aplicacion hace un parpadeo en el momento que se hace
el screenshot y de ahi en adelante va todo bien, alguien le ha pasado
algo similar o conocen algun metodo para evitar parpadeos?

2011/8/20 Fernando Barajas <fer...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages