Python指定窗口截图如何实现?Python怎么只截取某一个窗口的图像

在大家使用电脑的时候,在某些情况下可能就是需要截取指定窗口的图片并且将其给保存起来显示或者是发送 。那么在使用自定义截图工具时还需要去手动选择范围,准确度上就没有那么高了 。所以本文会给大家介绍一个使用python实现指定窗口截图的方法,往下看看吧 。

Python指定窗口截图如何实现?Python怎么只截取某一个窗口的图像

文章插图
1.因为是要对电脑上任意的窗口进行操作而不是对浏览器或者屏幕进行操作,所以需要使用到的库就是win32了 。使用import语法导入其中的几个模块,代码如下:
import win32api, win32con, win32gui2.然后去定义一个函数来获取窗口四个角的坐标,需要传进来的参数就是窗口名称,也就是在任务管理器中看到的进程名称 。通过这个名称和FindWindow()方法就能够获取到窗口的句柄,从而得到它的坐标了,函数代码如下所示:
def get_window_pos(name):    name = name    handle = win32gui.FindWindow(0, name)    if handle == 0:        return None    else:        return win32gui.GetWindowRect(handle)x1, y1, x2, y2 = get_window_pos('排班助手')3.那么在有了这个坐标之后还需要将窗口给放在屏幕的最上方并且设置其优先级为最高,这里的目的是为了防止在截取窗口图像时被其他弹出来的窗口给挡住,代码如下所示:
win32gui.SendMessage(handle, win32con.WM_SYSCOMMAND, win32con.SC_RESTORE, 0)win32gui.SetForegroundWindow(handle)4.最后只需要将Pillow库给导入进来,然后使用它截取屏幕图像的方法将窗口的四个角度值给传递进去 。在用show()就可以将窗口截图打开显示了,代码如下:
from PIL import Image, ImageGrabimg_ready = ImageGrab.grab((x1, y1, x2, y2))img_ready.show()【Python指定窗口截图如何实现?Python怎么只截取某一个窗口的图像】以上就是关于“Python指定窗口截图如何实现?Python怎么只截取某一个窗口的图像”的全部内容了,希望对你有所帮助 。

    推荐阅读