我正在做一个项目,拍摄桌面截图,并将图片上传到服务器上,我想开发一个python应用程序。当用户启动该应用程序时,它将开始以随机间隔的方式拍摄屏幕截图,比如2到5分钟的间隔,我的代码将截图,我已经在ubuntu上测试过了,它正在正常工作。捕获屏幕截图的代码
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分钟的随机间隔内运行这段代码,如何开发一个脚本来在线程中运行这段代码。
发布于 2013-09-13 11:20:24
#!/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."发布于 2013-09-13 10:52:40
我很想把它输出到像PyScreenshot这样的外部库中。
让它处理繁重的工作(比如计算出它需要的DM和screen API ),留给您一个PIL映像,可以保存到磁盘,也可以流成上传。
不过,如果你决心要做DIY的话,在堆栈溢出时手动执行此操作有很多答案。
至于间隔,这必须是线程吗?脚本不能单独运行,然后在快照之后,随机休眠一段时间( 120到300秒)吗?
import random
import time
time.sleep(random.randrange(120, 300))https://askubuntu.com/questions/345045
复制相似问题