2009-08-31 19 views
15
  • Esistono librerie che possono essere utilizzate per scrivere un'acquisizione di schermate in Python.
  • Può essere realizzato per essere multipiattaforma?
  • È possibile acquisire video? E se potesse essere in tempo reale?
  • Oppure sarebbe possibile creare direttamente filmati flash con ?

risposta

2

Non conosco librerie di uso generale. L'ho fatto per Windows e ho usato del codice codeproject.com in una DLL, chiamata da ctypes.

L'acquisizione video è probabilmente più difficile; Ho preso gli screenshot molto velocemente usando il banale modo di codeproject e ho ottenuto forse 8 fps. Se ciò non è sufficiente, probabilmente avrai bisogno di una libreria ottimizzata per il tuo caso d'uso; per esempio. tightVNC o CamStudio o qualcosa del genere. CamStudio può esportare flash ed è OSS.

3

cattura dello schermo può essere fatto con PIL thanks to the ImageGrab module

Per la generazione di filmati Flash, è possibile dare un'occhiata a ming. Non sono sicuro che abbia questa capacità, ma vale la pena dare un'occhiata.

+5

PIL è grande, ma purtroppo il modulo ImageGrab può essere utilizzato solo su Windows, secondo i loro documenti. –

1

Un modo per acquisire un video dello schermo dell'utente (sicuramente per X11, non è sicuro di Windows) è utilizzare gstreamer con lo ximagesrc plugin. Ci sono binding Python disponibili here, sebbene non abbia usato gst-python prima. So che lo Istanbul, un'app di screencast open source, lo usa: la visualizzazione della fonte potrebbe aiutarti.

Per acquisire immagini statiche, ho già utilizzato PyGTK su Linux per acquisire lo schermo dell'utente. Questo dovrebbe funzionare anche su Windows e Mac, anche se non l'ho provato. Ecco un piccolo frammento:

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 per maggiori informazioni.

Spero che questo aiuti!

3

si può provare anche questo può essere questo URL può aiutarti.

il suo castro !!! vedere il seguente codice di esempio può essere utile ....

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

Ho scritto uno strumento di cattura schermo multipiattaforma in wxPython. Vedere il download "GeneralScreenShotWX.py" nel sottotipo "Un'app flessibile di acquisizione delle schermate" nell'argomento "WorkingWithImages" @http://wiki.wxpython.org/WorkingWithImages#A_Flexible_Screen_Capture_App.

Sta funzionando su MSW, OS X e una distribuzione Linux e non richiede pacchetti extra wxPython.

Problemi correlati