import time
import win32gui, win32ui, win32con, win32api
from PIL import Image
def window_capture(filename):
#窗口的编号,0号表示当前活跃窗口
hwnd = 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]
#为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)
#print(mfcDC)
saveBitMap.SaveBitmapFile(saveDC, filename)
for i in range(3):
#print("pic/"+str(i)+".jpg")
time.sleep(1)
filename="pic/"+str(i)+".jpg"
window_capture(filename)
img1=Image.open(filename)
h1,w1,h2,w2=220,167,375,667
cropped = img1.crop((h1, w1, h1+h2, w1+w2))# (left, upper, right, lower)
cropped.save(filename)
print(filename+" save")
#input("---------end----------")
使用了两个依赖包 分别是:
win32gui
pillow