200kb能作甚?mss表示我给你整个截图程序

200KB能做什么?mss说:200KB我可以给你实现截屏功能。

在这里插入图片描述

一、安装

pip install mss

二、基本使用

2.1 语法

截屏的所有操作,只需定义 with mss() as sct ,而后进行操作即可。

from mss import mss

with mss() as sct:
    # ...

2.2 全屏截屏

只需使用 sct.shot 即可进行全屏截屏。

from mss import mss

with mss() as sct:
    sct.shot()

2.3 截图并重命名

是的,还是超级简单,直接在 shot 方法中,传入 output 参数即可。

sct.shot(output=f'screenshot_.png')

2.4 截取指定区域

选定区域,然后获取区域截图,调用 mss 自带的工具进行文件保持即可

import mss.tools

# 定义截屏区域
monitor = {"top": 100, "left": 100, "width": 300, "height": 300}

with mss.mss() as sct:
    # 获取指定区域的截图
    screenshot = sct.grab(monitor)
    # 保存截图
    mss.tools.to_png(screenshot.rgb, screenshot.size, output='region_screenshot.png')

三、高级使用

3.1 命令行操作

如果不想撰写代码实现截屏功能,你甚至可以直接用命令行进行截屏。

# 截取当前主屏
mss

# 截取当前主屏并重命名为screenshot.png
mss -o screenshot.png

# 选定截取范围
mss -c 100,100,800,600

命令行截图操作示意如图:

今天就写到这吧,难得周末,偷个懒,打王者去啦,明天补上后续的。

六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,详细介绍了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程的理论与Matlab代码实现过程。文档还涵盖了PINN物理信息神经网络在微分方程求解、主动噪声控制、天线分析、电动汽车调度、储能优化等多个工程与科研领域的应用案例,并提供了丰富的Matlab/Simulink仿真资源和技术支持方向,体现了其在多学科交叉仿真与优化中的综合性价值。; 适合人群:具备一定Matlab编程基础,从事机器人控制、自动化、智能制造、电力系统或相关工程领域研究的科研人员、研究生及工程师。; 使用场景及目标:①掌握六自由度机械臂的运动学与动力学建模方法;②学习人工神经网络在复杂非线性系统控制中的应用;③借助Matlab实现动力学方程推导与仿真验证;④拓展至路径规划、优化调度、信号处理等相关课题的研究与复现。; 阅读建议:建议按目录顺序系统学习,重点关注机械臂建模与神经网络控制部分的代码实现,结合提供的网盘资源进行实践操,并参考文中列举的优化算法与仿真方法拓展自身研究思路。
要使用Python的`mss`库找到一个窗口并截取该窗口大小的截图,可以结合`win32gui`库来获取窗口的位置和大小信息。以下是实现该功能的示例代码: ```python import mss import win32gui from PIL import Image def get_window_position(window_title): handle = win32gui.FindWindow(0, window_title) if handle == 0: return None return win32gui.GetWindowRect(handle) def capture_window_screenshot(window_title): pos = get_window_position(window_title) if pos is None: print(f"未找到标题为 {window_title} 的窗口。") return left, top, right, bottom = pos width = right - left height = bottom - top with mss.mss() as sct: monitor = { "left": left, "top": top, "width": width, "height": height } sct_img = sct.grab(monitor) img = Image.frombytes("RGB", sct_img.size, sct_img.bgra, "raw", "BGRX") img.save(f"{window_title}_screenshot.png") print(f"已成功截取 {window_title} 窗口的截图并保存为 {window_title}_screenshot.png") if __name__ == "__main__": window_title = "目标窗口标题" capture_window_screenshot(window_title) ``` ### 代码解释 1. **获取窗口位置**:`get_window_position`函数使用`win32gui.FindWindow`获取窗口句柄,再用`win32gui.GetWindowRect`获取窗口的左上角和右下角坐标。 2. **计算窗口大小**:根据获取的坐标计算窗口的宽度和高度。 3. **使用`mss`库截图**:创建一个`mss.mss()`对象,通过`grab`方法截取指定区域的屏幕内容,最后使用`PIL`库将截图保存为PNG文件。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐叔在学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值