2009-08-31 17 views
15
  • ¿Hay alguna biblioteca que se pueda utilizar para escribir una captura de pantalla en Python.
  • ¿Se puede hacer que sea multiplataforma?
  • ¿Es posible capturar videos? ¿Y si pudiera ser en tiempo real?
  • ¿O sería posible directamente generar películas flash?

Respuesta

2

No conozco ninguna biblioteca de propósito general. Hice esto para Windows y usé el código codeproject.com en una DLL, llamada desde ctypes.

La captura de video es probablemente más difícil; Tomé capturas de pantalla muy rápido utilizando el trivial proyecto de código y obtuve unos 8 fps. Si eso no es suficiente, probablemente necesite una biblioteca optimizada para su caso de uso; p.ej. tightVNC o CamStudio o algo así. CamStudio puede exportar flash y es OSS.

3

de captura de pantalla se puede hacer con PIL thanks to the ImageGrab module

Para la generación de películas Flash, puede echar un vistazo a ming. No estoy seguro de que tenga esta capacidad, pero vale la pena echarle un vistazo.

+5

PIL está muy bien, pero por desgracia el módulo ImageGrab sólo se puede utilizar en Windows, de acuerdo con sus documentos. –

1

Una forma de capturar un video de la pantalla del usuario (sin duda para X11, no estoy seguro acerca de Windows) es usar gstreamer con el ximagesrc plugin. Hay enlaces de Python disponibles here, aunque no he usado gst-python antes. Sé que Istanbul, una aplicación de screencasting de código abierto, la usa. Ver su fuente puede ser útil.

Para capturar imágenes estáticas, he usado PyGTK antes en Linux para capturar la pantalla del usuario. Esto también debería funcionar en Windows y Mac, aunque no lo he probado. He aquí un pequeño fragmento:

import gtk 
win = gtk.gdk.get_root_window() 
width, height = win.get_size() 
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, width, height) 
pb = pb.get_from_drawable(window, window.get_colormap(), 0, 0, 0, 0, width, height) 
pb.save('path to file', 'png') 

See the GTK docs para obtener más información.

Espero que ayude!

3

prueba esto también puede ser este URL puede ayudarte.

its castro !!! vea el código de ejemplo a continuación puede ser útil ....

>>> from castro import Castro 
>>> c = Castro() 
>>> c.start() 
>>> # Do something awesome! 
>>> c.stop() 
2

He escrito una herramienta de captura de pantalla multiplataforma en wxPython. Consulte la descarga "GeneralScreenShotWX.py" en el subtema "Una aplicación de captura de pantalla flexible" en el tema "WorkingWithImages" @http://wiki.wxpython.org/WorkingWithImages#A_Flexible_Screen_Capture_App.

Está trabajando en MSW, OS X y una distribución de Linux y no requiere paquetes adicionales de wxPython.

Cuestiones relacionadas