我可以用Python编写屏幕截图吗?

时间:2009-08-31 13:51:30

标签: python flash

  • 是否有可用于在Python中编写屏幕截图的库。
  • 它可以成为跨平台吗?
  • 是否有可能捕捉到视频? 如果可以实时实现?
  • 或者可以直接 生成flash电影?

6 个答案:

答案 0 :(得分:3)

屏幕截图可以使用PIL thanks to the ImageGrab module

完成

要生成Flash电影,您可以查看ming。我不确定它是否具备此功能,但值得一看。

答案 1 :(得分:3)

你也可以尝试一下 可能是这个URL可以帮助你。

它的卡斯特罗!看下面的示例代码可能很有用....

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

答案 2 :(得分:2)

我不知道任何通用库。我为Windows做了这个,并在DLL中使用了一些codeproject.com代码,从ctypes调用。

视频捕捉可能更难;我使用简单的codeproject方法快速截取屏幕截图并获得了8fps。如果这还不够,您可能需要一个针对您的用例进行优化的库;例如tightVNCCamStudio或其他内容。 CamStudio可以导出闪存并且是OSS。

答案 3 :(得分:2)

我在wxPython中编写了一个跨平台的屏幕捕获工具。 请参阅子主题“灵活的屏幕捕获应用程序”中的“GeneralScreenShotWX.py”下载 在主题“WorkingWithImages”下 @ http://wiki.wxpython.org/WorkingWithImages#A_Flexible_Screen_Capture_App

它正在使用MSW,OS X和一个Linux发行版,不需要额外的wxPython包。

答案 4 :(得分:1)

捕获用户屏幕视频的一种方法(当然是X11,不确定Windows)是使用gstreamer和ximagesrc plugin。有可用的Python绑定here,虽然我之前没有使用过gst-python。我知道Istanbul,一个开源的截屏视频应用程序,使用它 - 查看它的来源可能会对你有所帮助。

为了捕获静态图像,我之前在Linux上使用过PyGTK来捕获用户的屏幕。这应该适用于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了解更多信息。

希望有所帮助!

答案 5 :(得分:0)

我想所有采用Python控制截图的方法都在https://github.com/ponty/pyscreenshot

中介绍