Могу ли я написать скриншот в Python - PullRequest
15 голосов
/ 31 августа 2009
  • Существуют ли какие-либо библиотеки, которые можно использовать для записи снимка экрана в Python.
  • Можно ли сделать его кроссплатформенным?
  • Можно ли снимать на видео? А если это может быть в режиме реального времени?
  • Или было бы возможно напрямую генерировать флеш фильмы?

Ответы [ 6 ]

3 голосов
/ 06 октября 2009

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

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

>>> from castro import Castro
>>> c = Castro()
>>> c.start()
>>> # Do something awesome!
>>> c.stop()
3 голосов
/ 31 августа 2009

снимок экрана можно сделать с помощью PIL благодаря модулю ImageGrab

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

2 голосов
/ 06 июня 2011

Я написал кроссплатформенный инструмент для захвата экрана в wxPython. Смотрите загрузку "GeneralScreenShotWX.py" в подтеме "Гибкое приложение захвата экрана" по теме "WorkingWithImages" @ http://wiki.wxpython.org/WorkingWithImages#A_Flexible_Screen_Capture_App.

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

2 голосов
/ 31 августа 2009

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

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

1 голос
/ 31 августа 2009

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

Для захвата статических изображений я ранее использовал 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')

См. Документацию GTK для получения дополнительной информации.

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

0 голосов
/ 24 мая 2012

Полагаю, что все возможные способы получения снимков экрана, управляемых Python, описаны в https://github.com/ponty/pyscreenshot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...