首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python随机间隔拍摄截图吗?

用Python随机间隔拍摄截图吗?
EN

Ask Ubuntu用户
提问于 2013-09-13 10:20:02
回答 2查看 4.8K关注 0票数 5

我正在做一个项目,拍摄桌面截图,并将图片上传到服务器上,我想开发一个python应用程序。当用户启动该应用程序时,它将开始以随机间隔的方式拍摄屏幕截图,比如2到5分钟的间隔,我的代码将截图,我已经在ubuntu上测试过了,它正在正常工作。捕获屏幕截图的代码

代码语言:javascript
复制
import gtk.gdk
import time

w = gtk.gdk.get_default_root_window()
sz = w.get_size()
print "The size of the window is %d x %d" % sz
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])

ts = time.time()
filename = "screenshot"
filename += str(ts)
filename += ".png"

if (pb != None):
    pb.save(filename,"png")
    print "Screenshot saved to "+filename
else:
    print "Unable to get the screenshot."

我想要在2-5分钟的随机间隔内运行这段代码,如何开发一个脚本来在线程中运行这段代码。

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2013-09-13 11:20:24

代码语言:javascript
复制
#!/usr/bin/env python

import gtk.gdk
import time
import random

while 1 :
    # generate a random time between 120 and 300 sec
    random_time = random.randrange(120,300)

    # wait between 120 and 300 seconds (or between 2 and 5 minutes)
    print "Next picture in: %.2f minutes" % (float(random_time) / 60)
    time.sleep(random_time)

    w = gtk.gdk.get_default_root_window()
    sz = w.get_size()
    print "The size of the window is %d x %d" % sz
    pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
    pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])

    ts = time.time()
    filename = "screenshot"
    filename += str(ts)
    filename += ".png"

    if (pb != None):
        pb.save(filename,"png")
        print "Screenshot saved to "+filename
    else:
        print "Unable to get the screenshot."
票数 4
EN

Ask Ubuntu用户

发布于 2013-09-13 10:52:40

我很想把它输出到像PyScreenshot这样的外部库中。

让它处理繁重的工作(比如计算出它需要的DM和screen API ),留给您一个PIL映像,可以保存到磁盘,也可以流成上传。

不过,如果你决心要做DIY的话,在堆栈溢出时手动执行此操作有很多答案。

至于间隔,这必须是线程吗?脚本不能单独运行,然后在快照之后,随机休眠一段时间( 120到300秒)吗?

代码语言:javascript
复制
import random
import time

time.sleep(random.randrange(120, 300))
票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/345045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档