2009-08-31 10 views
15
  • Y a-t-il des bibliothèques qui peuvent être utilisées pour écrire une capture d'écran en Python?
  • Peut-il être conçu pour être multi-plateforme?
  • Est-il possible de capturer à la vidéo? Et si cela pouvait être en temps réel?
  • Ou serait-il possible de générer directement des films flash?

Répondre

2

Je ne connais aucune bibliothèque à usage général. Je l'ai fait pour Windows et utilisé du code codeproject.com dans une DLL, appelée à partir de ctypes.

La capture vidéo est probablement plus difficile; J'ai pris des captures d'écran très rapidement en utilisant le trivial codeproject et j'ai peut-être obtenu 8fps. Si cela ne suffit pas, vous aurez probablement besoin d'une bibliothèque optimisée pour votre cas d'utilisation; par exemple. tightVNC ou CamStudio ou quelque chose. CamStudio peut exporter le flash et est OSS.

3

capture d'écran peut être fait avec PIL thanks to the ImageGrab module

Pour générer des films Flash, vous pouvez jeter un oeil à ming. Je ne suis pas sûr qu'il a cette capacité, mais ça vaut le coup d'oeil.

+5

PIL est très bien, mais malheureusement, le module ImageGrab ne peut être utilisé sous Windows, en fonction de leurs documents. –

1

Une façon de capturer une vidéo de l'écran de l'utilisateur (certainement pour X11, pas sûr de Windows) est d'utiliser gstreamer avec le ximagesrc plugin. Il existe des liaisons Python disponibles here, bien que je n'ai jamais utilisé gst-python auparavant. Je sais Istanbul, une application de screencasting open source, l'utilise - voir sa source pourrait vous aider.

Pour capturer des images statiques, j'ai déjà utilisé PyGTK sous Linux pour capturer l'écran de l'utilisateur. Cela devrait également fonctionner sur Windows et Mac, même si je ne l'ai pas essayé. Voici un petit extrait:

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 pour plus d'informations.

Espérons que ça aide!

3

vous pouvez essayer cela aussi peut-être que cela URL peut vous aider.

son castro !!! voir l'exemple de code ci-dessous peut être utile ....

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

J'ai écrit un outil de capture d'écran multi-plateforme dans wxPython. Voir le téléchargement "GeneralScreenShotWX.py" dans le sous-thème "Une application de capture d'écran flexible" sous le sujet "WorkingWithImages" @http://wiki.wxpython.org/WorkingWithImages#A_Flexible_Screen_Capture_App.

Il fonctionne sur MSW, OS X et une distribution Linux et ne nécessite aucun paquet wxPython supplémentaire.

Questions connexes