亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

linux下python抓屏實現方法

2020-01-04 18:10:43
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了linux下python抓屏實現方法,涉及Python操作屏幕截取的相關技巧,需要的朋友可以參考下

本文實例講述了linux下python抓屏實現方法。分享給大家供大家參考。具體實現代碼如下:

 

 
  1. #!/usr/bin/python 
  2. '''''by zevolo, 2012.12.20 
  3. ''' 
  4. import gtk.gdk 
  5. import gtk 
  6. import glib 
  7. class MyRect(): 
  8. def __init__(self, x = 0, y = 0, w = 0, h = 0): 
  9. self.x = x 
  10. self.y = y 
  11. self.w = w 
  12. self.h = h 
  13. def __init__(self, x, y): 
  14. self.x = min(int(x.x), int(y.x)) 
  15. self.y = min(int(x.y), int(y.y)) 
  16. self.w = abs(int(y.x - x.x)) 
  17. self.h = abs(int(y.y - x.y)) 
  18. class MyPair(): 
  19. def __init__(self, x = 0, y = 0): 
  20. self.x = x 
  21. self.y = y 
  22. class MyPoint(MyPair): 
  23. def __init__(self, x = 0, y = 0): 
  24. MyPair.__init__(self, x, y) 
  25. class MySize(MyPair): 
  26. def __init__(self, w = 0, h = 0): 
  27. MyPair.__init__(self, x, y) 
  28. class MyCapture(): 
  29. (event_enter, event_leave) = (01
  30. def __init__(self): 
  31. pass 
  32. def capture(self): 
  33. pass 
  34. def handleEvent(self, event): 
  35. if event == event_enter: 
  36. enterSnap() 
  37. elif event == event_leave: 
  38. leaveSnap() 
  39. def enterSnap(self): 
  40. pass 
  41. def leaveSnap(self): 
  42. pass 
  43. def snap(self, window = None, rect = None, name = None): 
  44. pass 
  45. class MyCaptureGtk(MyCapture): 
  46. def __init__(self): 
  47. MyCapture.__init__(self
  48. self.window = gtk.Window() 
  49. self.window.set_default_size(1,1
  50. self.window.connect("button-press-event"self.button_press_cb) 
  51. self.first = None 
  52. self.second = None 
  53. self.window.show() 
  54. #self.window.set_events(gtk.gdk.BUTTON_PRESS_MASK) 
  55. def getWindow(self): 
  56. return self.window 
  57. def button_press_cb(self, widget, event): 
  58. #print "type is %d" % event.type 
  59. if event.type == gtk.gdk.BUTTON_PRESS: 
  60. if event.button == 1#left button 
  61. print "(%d, %d), (%d, %d), button is %d" % (event.x_root, event.y_root, event.x, event.y, event.button) 
  62. if not self.first: 
  63. self.first = MyPoint(event.x_root, event.y_root) 
  64. else
  65. self.second = MyPoint(event.x_root, event.y_root) 
  66. self.snap(None, MyRect(self.first, self.second)) 
  67. self.first = None 
  68. elif event.button == 3#right button 
  69. self.uncapture() 
  70. else
  71. pass 
  72. def uncapture(self): 
  73. if self.first: 
  74. print "cancel" 
  75. self.first = None 
  76. else
  77. print "exit now" 
  78. gtk.gdk.pointer_ungrab() 
  79. gtk.mainquit() 
  80. def capture(self, time = 0L): 
  81. cursor = gtk.gdk.Cursor(gtk.gdk.display_get_default(), gtk.gdk.CROSSHAIR) 
  82. ret = gtk.gdk.pointer_grab(self.window.window, True
  83. gtk.gdk.BUTTON_PRESS_MASK, 
  84. None, cursor, time) 
  85. if ret == gtk.gdk.GRAB_SUCCESS: 
  86. print "left button start, end, right button cancel/exit" 
  87. else
  88. print "failed to capture %d, (viewable %d),(frozen %d), (already %d)" / 
  89. % (ret, gtk.gdk.GRAB_NOT_VIEWABLE, gtk.gdk.GRAB_FROZEN, gtk.gdk.GRAB_ALREADY_GRABBED) 
  90. def snap(self, window = None, rect = None, name = None): 
  91. w = window 
  92. if not window: 
  93. #w = gtk.gdk.get_default_root_window() 
  94. d = gtk.gdk.display_get_default() 
  95. w = d.get_default_screen().get_root_window() 
  96. r = rect 
  97. if not r: 
  98. sz = w.get_size() 
  99. r = MyRect(00, sz[0], sz[1]) 
  100. print "The size of the window is (%d, %d, %d, %d)" % (r.x, r.y, r.w, r.h) 
  101. n = name 
  102. if not n: 
  103. n = "screenshot.png" 
  104. buf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8, r.w, r.h) 
  105. buf = buf.get_from_drawable(w,w.get_colormap(), r.x, r.y, 00, r.w, r.h) 
  106. if (buf != None): 
  107. buf.save(n, "png"
  108. print "Screenshot saved to %s." % n 
  109. else
  110. print "Unable to get the screenshot." 
  111. def timeout(data): 
  112. #print "timeout" 
  113. data.capture() 
  114. if __name__ == '__main__'
  115. cap = MyCaptureGtk() 
  116. w = cap.getWindow() 
  117. w.show() 
  118. glib.timeout_add_seconds(1, timeout, cap) 
  119. #cap.snap() 
  120. gtk.main() 

希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久伊人欧美| 国产精品毛片a∨一区二区三区|国| 日韩三级成人av网| 欧美在线激情视频| 日韩最新中文字幕电影免费看| 91精品在线一区| 主播福利视频一区| 久久久精品一区二区三区| 久久久国产精彩视频美女艺术照福利| 久久全球大尺度高清视频| 一本大道香蕉久在线播放29| 亚洲精品女av网站| 欧洲永久精品大片ww免费漫画| 最新的欧美黄色| 久久男人的天堂| 欧美极品美女视频网站在线观看免费| 韩日欧美一区二区| 国产精品色午夜在线观看| 亚洲美女免费精品视频在线观看| 91成人精品网站| 91精品国产亚洲| 色爱av美腿丝袜综合粉嫩av| 欧美第一页在线| 北条麻妃一区二区三区中文字幕| 色噜噜国产精品视频一区二区| 狠狠躁天天躁日日躁欧美| 日韩免费中文字幕| 国产91精品黑色丝袜高跟鞋| 一区二区欧美亚洲| 日韩风俗一区 二区| 亚洲91精品在线观看| 亚洲成人激情小说| 伊人伊人伊人久久| 欧美成人免费va影院高清| 美女扒开尿口让男人操亚洲视频网站| 上原亚衣av一区二区三区| 4388成人网| 久久精品国产亚洲一区二区| 精品国产自在精品国产浪潮| 中文字幕自拍vr一区二区三区| 亚洲女人天堂色在线7777| 97精品国产97久久久久久| www.日本久久久久com.| 日韩欧美中文字幕在线观看| 国内自拍欧美激情| 国产一区二区三区在线| 亚洲国产精品yw在线观看| 国产欧美在线观看| 久久久人成影片一区二区三区| 91精品国产91久久久久久不卡| 97免费中文视频在线观看| 亚洲女人初尝黑人巨大| 国产精品视频xxx| 国产一区二区黑人欧美xxxx| 国产精品久久久久久久久借妻| 91网站免费观看| 欧美在线视频观看| 日韩免费观看视频| 中文字幕亚洲色图| 久久亚洲国产精品成人av秋霞| 日韩欧美国产中文字幕| 久久亚洲春色中文字幕| 日本精品久久久| 久久九九免费视频| 中文字幕av一区中文字幕天堂| 欧美精品午夜视频| 亚洲国产精品成人一区二区| 亚洲成人1234| 亚洲免费中文字幕| 亚洲成年人影院在线| 亚洲人成网7777777国产| 中文字幕日韩在线播放| 精品国产鲁一鲁一区二区张丽| 国产精品99蜜臀久久不卡二区| 欧美福利在线观看| 亚洲v日韩v综合v精品v| 91高潮在线观看| 亚洲视频电影图片偷拍一区| 国产一区二区三区三区在线观看| 69av成年福利视频| 一本大道久久加勒比香蕉| 欧美日韩成人在线观看| 中文字幕精品www乱入免费视频| 国产丝袜精品第一页| 91精品久久久久久| 亚洲a∨日韩av高清在线观看| 欧美日韩电影在线观看| 中文字幕在线看视频国产欧美| 亚洲一区二区三区sesese| 97在线免费观看视频| 欧美日本国产在线| 国产一区二区三区丝袜| 久久久久久亚洲精品不卡| 成人免费视频xnxx.com| 91在线免费观看网站| 欧美一区二粉嫩精品国产一线天| 国产香蕉精品视频一区二区三区| 综合国产在线视频| 国产91精品久久久久久久| 欧美丝袜一区二区| 在线观看欧美日韩国产| 国产精品美腿一区在线看| 91国产一区在线| 日本19禁啪啪免费观看www| 97视频在线观看视频免费视频| 久久久国产一区二区三区| 91av福利视频| 欧美日韩国产激情| 国产精品久久久久高潮| 久久天天躁狠狠躁夜夜爽蜜月| 欧美夫妻性生活视频| 亚洲欧美制服综合另类| 91精品国产九九九久久久亚洲| 国产精品午夜国产小视频| 成人黄色av免费在线观看| 在线视频欧美性高潮| 亚洲午夜未满十八勿入免费观看全集| 欧美激情一区二区三区在线视频观看| 国内精品美女av在线播放| 欧美激情视频一区| 日韩欧美第一页| 国产精品青青在线观看爽香蕉| 亚洲人精品午夜在线观看| 欧美美最猛性xxxxxx| 在线成人激情视频| 欧美视频在线视频| 亚洲欧洲一区二区三区久久| 亚洲精品自拍第一页| 久久久久久一区二区三区| 国产一区二区三区中文| 国内精品视频一区| 91九色在线视频| 久久99国产精品自在自在app| 亚洲美女精品成人在线视频| 久久这里有精品视频| 庆余年2免费日韩剧观看大牛| 亚洲精品美女久久久| 亚洲欧美精品在线| 欧美xxxx做受欧美.88| 91精品国产自产在线老师啪| 久久久国产一区| 免费99精品国产自在在线| 欧美肥臀大乳一区二区免费视频| 精品偷拍一区二区三区在线看| 欧美黑人一级爽快片淫片高清| 久久综合久久美利坚合众国| 国产成人精品一区二区| 91高潮在线观看| 亚洲高清一区二| 亚洲社区在线观看| 欧美日韩精品在线观看| 国产有码在线一区二区视频| 中文字幕日韩视频| 欧美性色视频在线| 欧美国产日韩一区二区在线观看| 久久久精品2019中文字幕神马| 91天堂在线视频| 国产色视频一区| 欧美精品videos另类日本| 亚洲午夜精品久久久久久久久久久久| 91国内免费在线视频| 人妖精品videosex性欧美| 亚洲jizzjizz日本少妇| 欧美人与性动交|