Python GUI 截圖小工具 例項Demo
阿新 • • 發佈:2018-12-18
首先上程式碼
#匯入相應的庫 from tkinter import * #介面庫 from PIL import ImageGrab #圖形庫 from tkinter import filedialog #儲存檔案對話方塊 import PyHook3 #獲得座標 import pythoncom hm = PyHook3.HookManager() #初始化鉤子物件 def OnMouseDownEvent(event): """Return start coordinate""" global start_x global start_y start_x,start_y = event.Position #得到初始點的x,y座標 return True def OnMouseUpEvent(event): """Return end coordinate""" end_x,end_y = 0,0 end_x,end_y = event.Position hm.UnhookMouse() bbox = (start_x,end_y,end_x,start_y) #順序不能亂-- screen = ImageGrab.grab(bbox) # 預設全屏 filesave = filedialog.asksaveasfilename() #新增檔案儲存對話方塊 screen.save(filesave) #儲存對應檔案 root.quit() #關閉視窗 return True def ScreenShoot(): """ Return screen shot """ hm.MouseLeftDown = OnMouseDownEvent hm.MouseLeftUp = OnMouseUpEvent hm.HookMouse() pythoncom.PumpMessages() def ScreenShootAllGraph(): """ Return all Screen""" root.wm_minsize(0,0) screen = ImageGrab.grab() # 預設全屏 filesave = filedialog.asksaveasfilename() #新增檔案儲存對話方塊 screen.save(filesave) #儲存對應檔案 root.quit() #關閉視窗 # 初始化tkinter root = Tk() root.title("YTouch截圖 1.0") root.geometry('300x400') #視窗大小:寬*高 root.resizable(width=True, height=True) #設定寬高不可變 """ 截圖按鈕 """ btn_ScreenShot = Button(root,text="開始截圖",command=ScreenShoot) btn_ScreenShot.place(width=90,height=30,x=20,y=300) """ 截圖全圖 """ btn_ScreenAllShot = Button(root,text="擷取全圖",command=ScreenShootAllGraph) btn_ScreenAllShot.place(width=90,height=30,x=130,y=300) root.mainloop()
然後看效果:
擷取全圖的效果如下:
2.區域性截圖效果
其中這個demo程式碼有幾個注意點:
1.它儲存格式是png格式的
2.另存為對話方塊需要把檔案命名為xxx.png格式的才可以正常顯示
3.相應的庫檔案下載比較麻煩 -- 大家自行下載即可