当前位置 博文首页 > Python截图并保存的具体实例

    Python截图并保存的具体实例

    作者:十一 时间:2021-02-10 18:03

    大家肯定会疑问,为什么需要用python去进行截图保存,或者说是我们的QQ、微信都是自带截图工具的,可以直接拿过来进行使用的,但是事实上,一般在测试的时候,经常会遇到代码报错等问题,这种需要反馈的时候,就需要利用到python自行截图,好啦,下面就是实现的几个操作。

    1、selenium for python

    实现代码如下:

    import time
    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.implicitly_wait(6)
    driver.get("https://www.baidu.com")
    time.sleep(1)
    driver.get_screenshot_as_file("C:\\baidu.png")
    driver.quit()

    2、PIL库

    实现代码如下:

    import time
    from PIL import ImageGrab
    if __name__=="__main__": 
     pic = ImageGrab.grab()
     pic.save("picture.jpg")

    实例扩展:

    #coding=utf-8
    import time
    import win32gui, win32ui, win32con, win32api
    def window_capture(filename):
     hwnd = 0 # 窗口的编号,0号表示当前活跃窗口
     # 根据窗口句柄获取窗口的设备上下文DC(Divice Context)
     hwndDC = win32gui.GetWindowDC(hwnd)
     
     # 根据窗口的DC获取mfcDC
     mfcDC = win32ui.CreateDCFromHandle(hwndDC)
     
     # mfcDC创建可兼容的DC
     saveDC = mfcDC.CreateCompatibleDC()
     
     # 创建bigmap准备保存图片
     saveBitMap = win32ui.CreateBitmap()
     
     # 获取监控器信息
     MoniterDev = win32api.EnumDisplayMonitors(None, None)
     w = MoniterDev[0][2][2]
     h = MoniterDev[0][2][3]
     
     # print w,h   #图片大小
     # 为bitmap开辟空间
     saveBitMap.CreateCompatibleBitmap(mfcDC, w, h)
     
     # 高度saveDC,将截图保存到saveBitmap中
     saveDC.SelectObject(saveBitMap)
     
     # 截取从左上角(0,0)长宽为(w,h)的图片
     saveDC.BitBlt((0, 0), (w, h), mfcDC, (0, 0), win32con.SRCCOPY)
     saveBitMap.SaveBitmapFile(saveDC, filename)
     
    if __name__=="__main__": 
     beg = time.time()
     for i in range(1):
      image_name="haha%s.jpg"%i
      window_capture(image_name)
     end = time.time()
     print(end - beg)
    
    js
    下一篇:没有了