linux下python抓屏小程序

linux下python抓屏小程序,第1张

概述linux下python抓屏小程序

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

#!/usr/bin/python''' ''' import gtk.gdkimport gtkimport glib class MyRect():    def __init__(self,x = 0,y = 0,w = 0,h = 0):        self.x = x        self.y = y        self.w = w        self.h = h    def __init__(self,x,y):        self.x = min(int(x.x),int(y.x))        self.y = min(int(x.y),int(y.y))        self.w = abs(int(y.x - x.x))        self.h = abs(int(y.y - x.y)) class MyPair():    def __init__(self,y = 0):        self.x = x        self.y = y class MyPoint(MyPair):    def __init__(self,y = 0):        MyPair.__init__(self,y) class MySize(MyPair):    def __init__(self,h = 0):        MyPair.__init__(self,y)  class MyCapture():    (event_enter,event_leave) = (0,1)    def __init__(self):        pass     def capture(self):        pass     def handleEvent(self,event):        if event == event_enter:            enterSnap()        elif event == event_leave:            leaveSnap()     def enterSnap(self):        pass     def leaveSnap(self):        pass     def snap(self,window = None,rect = None,name = None):        pass  class MyCaptureGtk(MyCapture):    def __init__(self):        MyCapture.__init__(self)        self.window = gtk.Window()        self.window.set_default_size(1,1)        self.window.connect("button-press-event",self.button_press_cb)        self.first = None        self.second = None        self.window.show()        #self.window.set_events(gtk.gdk.button_PRESS_MASK)     def getwindow(self):        return self.window     def button_press_cb(self,Widget,event):        #print "type is %d" % event.type        if event.type == gtk.gdk.button_PRESS:            if event.button == 1: #left button                print "(%d,%d),(%d,button is %d" % (event.x_root,event.y_root,event.x,event.y,event.button)                if not self.first:                    self.first = MyPoint(event.x_root,event.y_root)                else:                    self.second = MyPoint(event.x_root,event.y_root)                    self.snap(None,MyRect(self.first,self.second))                    self.first = None            elif event.button == 3: #right button                self.uncapture()            else:                pass     def uncapture(self):        if self.first:            print "cancel"            self.first = None        else:            print "exit Now"            gtk.gdk.pointer_ungrab()            gtk.mainquit()     def capture(self,time = 0L):        cursor = gtk.gdk.Cursor(gtk.gdk.display_get_default(),gtk.gdk.CROSSHAIR)        ret = gtk.gdk.pointer_grab(self.window.window,True,gtk.gdk.button_PRESS_MASK,None,cursor,time)        if ret == gtk.gdk.GRAB_SUCCESS:            print "left button start,end,right button cancel/exit"        else:            print "Failed to capture %d,(vIEwable %d),(froZen %d),(already %d)" \              % (ret,gtk.gdk.GRAB_NOT_VIEWABLE,gtk.gdk.GRAB_FROZen,gtk.gdk.GRAB_ALREADY_GRABbed)     def snap(self,name = None):        w = window        if not window:            #w = gtk.gdk.get_default_root_window()            d = gtk.gdk.display_get_default()            w = d.get_default_screen().get_root_window()         r = rect        if not r:            sz = w.get_size()            r = MyRect(0,sz[0],sz[1])        print "The size of the window is (%d,%d,%d)" % (r.x,r.y,r.w,r.h)         n = name        if not n:            n = "screenshot.png"         buf = gtk.gdk.Pixbuf(gtk.gdk.colorSPACE_RGB,False,8,r.h)        buf = buf.get_from_drawable(w,w.get_colormap(),r.x,r.h)        if (buf != None):            buf.save(n,"png")            print "Screenshot saved to %s." % n        else:            print "Unable to get the screenshot." def timeout(data):    #print "timeout"    data.capture() if __name__ == '__main__':    cap = MyCaptureGtk()    w = cap.getwindow()    w.show()    glib.timeout_add_seconds(1,timeout,cap)#cap.snap()    gtk.main() 

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的linux下python抓屏小程序全部内容,希望文章能够帮你解决linux下python抓屏小程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1198925.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存