2009-08-31 2 views
15
  • Есть ли библиотеки, которые могут быть использованы для записи захвата экрана в Python.
  • Может ли это быть кросс-платформенным?
  • Можно ли захватить видео? И если бы это было в режиме реального времени?
  • Или можно напрямую установить флеш-ролики?

ответ

2

Я не знаю ни одной библиотеки общего назначения. Я сделал это для Windows и использовал код codeproject.com в DLL, называемый ctypes.

Видеозахват, вероятно, сложнее; Я сделал скриншоты очень быстро, используя тривиальный путь codeproject и получил возможно 8 кадров в секунду. Если этого недостаточно, вам, вероятно, понадобится библиотека, оптимизированная для вашего использования; например tightVNC или CamStudio или что-то в этом роде. CamStudio может экспортировать флеш-память и является OSS.

3

захвата экрана может быть сделано с PIL thanks to the ImageGrab module

Для создания флэш-роликов, вы можете посмотреть на ming. Я не уверен, что у этого есть такая возможность, но это стоит посмотреть.

+5

PIL здорово, но, к сожалению, модуль ImageGrab может быть использован только на Windows, в соответствии с их документами. –

1

Один из способов захвата видео на экране пользователя (конечно же, для X11, не обязательно о Windows) - использовать gstreamer с помощью ximagesrc plugin. Есть привязки Python, доступные here, хотя раньше я не использовал gst-python. Я знаю, Istanbul, приложение для открывания с открытым исходным кодом, использует его - просмотр источника может помочь вам.

Чтобы захватить статические изображения, я использовал PyGTK раньше, чем в Linux, чтобы захватить экран пользователя. Это также должно работать на Windows и Mac, хотя я не пробовал. Вот небольшой отрывок:

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 для получения дополнительной информации.

Надеюсь, что это поможет!

3

вы можете попробовать это также может быть это URL может помочь вам.

его castro !!! см. пример кода ниже может быть полезным ....

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

Я написал инструмент для захвата экрана в кросс-платформе в wxPython. См. Скачать «GeneralScreenShotWX.py» в подтеме «Приложение для гибкого захвата экрана» под заголовком «WorkingWithImages» @http://wiki.wxpython.org/WorkingWithImages#A_Flexible_Screen_Capture_App.

Он работает с MSW, OS X и одним дистрибутивом Linux и не требует дополнительных пакетов wxPython.