python 截图小工具

Windows Snipping Tool升级了!现在支持屏幕录制功能,仅限于开发者频道内部使用! 这一功能目前仅限于Windows操作系统的Dev Channel Insiders使用,这意味着只有开发者频道内部的用户才能够体验到这一全新的功能。屏幕录制功能的加入使得Windows Snipping Tool成为了一款更加强大的工具,不仅可以捕捉静态的截图,还可以记录屏幕上的动态操作,为用户提供更全面的截屏体验。对于其他版本的Windows Snipping Tool,我们可能需要等待一段时间,直到该功能在更广泛的Windows用户中得到推广和普及。希望以上内容对你有所帮助!如有任何疑问,请随时提问。 阅读详情

一、Windows 操作系统 Snipping Tool 截图工具
1:win+R打开运行。 
2:输入snippingtool
或
1:win+R打开运行。 
2:输入cmd
2:输入snippingtool
或
快捷键 Win + Shift + S 来打开 Snipping Tool 工具
二、用python实现屏幕截图功能
PIL实现截图
Python Imaging Library (PIL)它提供了许多用于图像处理的功能,包括图像打开、保存、转换、绘制等。
通过使用PIL库的ImageGrab方法实现坐标截屏。
安装PIL

pip install pillow

原理,代码示例:

from PIL import ImageGrab
# grab()如果不加参数,是全屏。四个参数分别是要截取范围的左上角x、y和右下角的x、y坐标。
im = ImageGrab.grab(bbox=(0, 0, 100, 100))
im.save(r'img.png')

三、python 截图小工具
源码如下:

import tkinter
import tkinter.filedialog
import os
from PIL import ImageGrab,Image
from time import sleep
import time

#用来显示全屏幕截图并响应二次截图的窗口类
class MyCapture:
	def __init__(self, png):
		#变量X和Y用来记录鼠标左键按下的位置
		self.X = tkinter.IntVar(value=0)
		self.Y = tkinter.IntVar(value=0)

		#屏幕尺寸
		screenWidth = root.winfo_screenwidth()
		screenHeight = root.winfo_screenheight()

		#创建顶级组件容器
		self.top = tkinter.Toplevel(root, width=screenWidth, height=screenHeight)

		#不显示最大化、最小化按钮
		self.top.overrideredirect(True)
		self.canvas = tkinter.Canvas(self.top,bg='white', width=screenWidth, height=screenHeight)

		#显示全屏截图,在全屏截图上进行区域截图
		self.image = tkinter.PhotoImage(file=png)
		self.canvas.create_image(screenWidth//2, screenHeight//2, image=self.image)

		#鼠标左键按下的位置
		def onLeftButtonDown(event):
			self.X.set(event.x)
			self.Y.set(event.y)

			#开始截图
			self.sel = True

		#鼠标左键移动,显示选取的区域
		def onLeftButtonMove(event):
			if not self.sel:
				return
			global lastDraw
			try:
				#删除刚画完的图形,要不然鼠标移动的时候是黑乎乎的一片矩形
				self.canvas.delete(lastDraw)
			except Exception as e:
				pass
			lastDraw = self.canvas.create_rectangle(self.X.get(), self.Y.get(), event.x, event.y, outline='red')

		#获取鼠标左键抬起的位置,保存区域截图
		def onLeftButtonUp(event):
			self.sel = False
			try:
				self.canvas.delete(lastDraw)
			except Exception as e:
				pass
			sleep(0.1)
			#考虑鼠标左键从右下方按下而从左上方抬起的截图
			left, right = sorted([self.X.get(), event.x])
			top, bottom = sorted([self.Y.get(), event.y])
			image = Image.open(png)
			pic = image.crop((left, top, right, bottom))
			#pic = ImageGrab.grab((left, top, right, bottom))
			txt1=time.strftime('%Y%m%d%H%M%S',time.gmtime())
			#弹出保存截图对话框
			fileName = tkinter.filedialog.asksaveasfilename(title='保存截图', filetypes=[("PNG file", "*.png"),("JPEG file", "*.jpeg;*.jpg"),("GIF file","*.gif"),("BMP file","*.bmp")],initialfile=txt1,defaultextension='.png')
			if fileName:
				pic.save(fileName)
				pic.close()
			#关闭当前窗口
			self.top.destroy()
		self.canvas.bind('<Button-1>', onLeftButtonDown)
		self.canvas.bind('<B1-Motion>', onLeftButtonMove)
		self.canvas.bind('<ButtonRelease-1>', onLeftButtonUp)
		#让canvas充满窗口,并随窗口自动适应大小
		self.canvas.pack(fill=tkinter.BOTH, expand=tkinter.YES)

#开始截图
def buttonCaptureClick():
	#最小化主窗口
	root.state('icon')
	sleep(0.2)
	filename = 'temp.png'
	#grab()方法默认对全屏幕进行截图
	im = ImageGrab.grab()
	im.save(filename)
	im.close()
	#显示全屏幕截图
	w = MyCapture(filename)
	buttonCapture.wait_window(w.top)
	#截图结束,恢复主窗口,并删除临时的全屏幕截图文件
	root.state('normal')
	os.remove(filename)
#窗口居中
def center_window(root,w, h):
	ws = root.winfo_screenwidth()
	hs = root.winfo_screenheight()
	x = (ws/2) - (w/2)   
	y = (hs/2) - (h/2)
	root.geometry('%dx%d+%d+%d' % (w, h, x, y))

root = tkinter.Tk()
#设置窗口大小与位置
#root.geometry('100x40+400+300')
center_window(root,95,40)
#设置窗口大小不可改变
root.resizable(False, False)
buttonCapture = tkinter.Button(root, text='截图', command=buttonCaptureClick)
buttonCapture.place(x=10, y=10, width=80, height=20)
#启动消息主循环
root.mainloop()

[ 常用工具篇 ] 还在嫌截图麻烦?快来使用 Win10 原生的截图工具 Snipping Tool 吧 🍬博主介绍 👨‍🎓 博主介绍:大家好,我是_PowerShell,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】【通讯安全】【web安全】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋 🙏作者水平有限,欢迎各位大佬指点,相互学习进步! 目录 🍬博主介绍 写在前面 一、效果展示 Snipping Tool还有很多的优势: 1. 打开截图工具 2. 我们可以根据截图模式选择不同的模式: 1. 自由截... 阅读详情

相关推荐

Windows 系统常用关机快捷键、Windows系统操作技巧 & 绘制形状以创建屏幕截图 start snippingtool

可帮助您快速打开应用程序、文件夹、控制面板等。

专注于计算机研发知识和资讯分享 554

Windows 操作系统 Snipping Tool 截图工具

在日常的开发工作中,我们经常需要使用一些工具来辅助我们完成一些任务,其中截图工具就是一个非常常用的工具。在 Windows 操作系统中,我们可以使用快捷键 Win + Shift + S 来打开 Snipping Tool 工具,也可以在开始菜单中搜索“Snipping Tool”来打开该工具。在 Snipping Tool 工具的界面中,我们可以看到四个不同的选项:矩形截图、自由形截图、窗口截图和全屏截图。接下来,我们可以点击“文件”菜单将截图保存到本地电脑中,或者点击“编辑”菜单对截图进行编辑操作。

qq_51553749的博客 2万+

Python + Google AI 自动修复 Sonar Bug 实践

在工作中总会遇到种种不期而至的需求,比如前段时间突然要修复所有 Sonar Bug,涉及各种琐碎的代码风格问题,包括但不限于语法不规范、废弃注释等问题。这些项目都已经持续开发几年了,Sonar 上的问题层出不穷,各种问题已经累积到了上万个,手动修复不但费时费力,而且过程异常枯燥。

子洋 Blog 2417

win10 自带截图工具 SnippingTool

■位置 %windir%\system32\SnippingTool.exe (C:\Users\>echo %windir% C:\WINDOWS) ■工具 --- --- --- ■扩展 我们可以使用VBS调用这个软件 完成自动截图的处理。 VBS使用时,有以下注意点 1.截图工具要选择窗口模式 2.VBS运行前,调整好要截取对象程序(P...

sun0322 1万+

手把手教你用Docker快速部署ZLMediaKit流媒体服务器(含WebRTC配置)

本文详细介绍了如何使用Docker快速部署ZLMediaKit流媒体服务器,并配置WebRTC功能。通过容器化部署,实现环境一致性、资源隔离和快速扩展,同时提供WebRTC专项配置、多协议推拉流实战测试及生产环境优化建议,帮助开发者高效搭建企业级流媒体平台。

agile9scrum的博客 203

ESP-CSI:使用ESP32进行CSI(信道状态信息)采集

使用esp32进行csi(信道状态信息)采集和处理

capsize的博客 8284

Python实现截图AI文字识字小工具

1. 获取百度识字API 由于百度提供了免费的图片识字API,而且非常好用,所以直接使用百度的api来进行识字。 首先在百度AI开放平台注册一个账号,网址http://ai.baidu.com/,注册完之后进入右上角控制台,点击->"文字识别" 点击“创建应用” 创建一个识字的应用,接口选择“文字识别”,然后下面填个人,描述随便写一些 然后再应用主页中可以看到申请到的API key和Secret Key,该接口一天可以每天调用50000次,完全可以满足我们个人的需求 2.

blowfire123的博客 2493

一、Abaqus CAE 入门操作(薄膜应力计算)

一、Abaqus CAE 入门操作(薄膜应力计算)

A20802013的博客 4370

用Python制作截图小工具

这篇文章讨论了我们如何使用Python编程语言进行截图。我们看到了如何使用pyautogui 模块与save() 函数和其他模块,如NumPy 和OpenCV。我们还学习了如何使用Python的Pillow 模块来捕捉屏幕的一部分。此外,我们还看到了如何使用pyscreenshot 模块来捕获整个屏幕和它的一部分。

Everly_的博客 2686

告别迷茫!用ETAS RTA-OS配置你的第一个AUTOSAR OS任务(含VRTA虚拟ECU实战)

本文详细介绍了如何使用ETAS RTA-OS工具链在VRTA虚拟ECU上配置和运行第一个AUTOSAR OS任务。通过从XML配置到任务调度的全流程实战,帮助开发者快速掌握嵌入式操作系统开发的核心步骤,特别适合刚接触AUTOSAR的开发者快速上手。

weixin_42533622的博客 419

SDFCOM_SWC警告深度剖析:从assign短路到时序标注失效的链路追踪

本文深入剖析了SDFCOM_SWC警告的根源,从assign短路到时序标注失效的全链路追踪。通过分析RTL设计中的assign语句陷阱、综合阶段的优化变形以及PrimeTime生成SDF文件的视角,提出了重构RTL设计、警告抑制和SDF生成优化等解决方案,帮助工程师有效避免时序标注问题。

weixin_42519985的博客 365

Python GUI 截图小工具 实例Demo

首先上代码 #导入相应的库 from tkinter import * #界面库 from PIL import ImageGrab #图形库 from tkinter import filedialog #保存文件对话框 import PyHook3 #获得坐标 import pythoncom hm = PyHook3.HookManager() #初始化钩子对象 ...

MusicMan 4103

PID调参避坑指南:为什么你的电机总是震荡?从比例带积分到微分实战解析

本文针对电机控制中常见的震荡问题,提供了一份PID调参实战指南。文章深入解析了比例(P)、积分(I)、微分(D)三个参数对系统稳定性的影响,揭示了比例增益过大是导致震荡的关键原因之一,并给出了从纯比例调试到引入积分、微分的系统化调参流程与避坑要点,帮助工程师快速实现电机平稳、精准的控制。

weixin_28223453的博客 459

qq截图工具提取_用Python开发截图识别OCR小工具

你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实时的把你截出来的图片中的文字识别出来。下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。效果预览源码解析1)等待用户截图此处需要借助贴图神器(Snipaste)其中“f1”是截图的快捷键,“ctrl+c”是把截图保存到剪贴板的快捷键。如果使用...

weixin_39620065的博客 743

ChatGPT设置密钥后Codex免手机验证:配置顺序与身份凭证复用机制

API Key 是一种用于身份识别的凭证,其核心原理是通过预配置的密钥替代交互式登录流程。在开发工具中,密钥认证优先级通常高于会话认证,当本地存在有效密钥时,工具会直接复用该凭证,从而减少重复验证环节。这种机制的技术价值在于提升开发效率与配置一致性,尤其适用于多设备切换、CI/CD 流水线及编程辅助工具等场景。以 Codex 为例,在 ChatGPT 界面提前配置 API 密钥后,Codex 启动时可读取持久化存储的密钥,避免触发手机号验证,实现身份凭证的跨入口复用。

weixin_33940469的博客 490

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python截图翻译小工具

东西很简单,就是个截图+ocr+百度api翻译,很粗糙,就是试一下 截图部分借鉴:https://blog.youkuaiyun.com/Python_sn/article/details/108950008 基本可以实现截图带翻译,具体翻译结果一方面依赖于OCR结果,一方面依赖于百度api的翻译结果 ...

wi162yyxq的博客 389

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

[Python]用Qt6和Pillow实现截图小工具

python借助QT6,PIL实现截屏功能。解决了DPI不同导致显示与抓取误差问题

weixin_67719939的博客 1993

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

用Python开发截图识别OCR小工具

图片来源于网络 文/GitPython你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实...

Python中文社区 881

python窗口截图快捷键_windows下实现快捷键截图小工具

1.首先你的电脑需要安装微信(如果没有可以求助自己小伙伴或百度)打开微信安装目录找到PrScrn.dll考到任意地方PrScrn.dll用cmd控制台转到PrScrn.dll目录(你可以在目录按住Shift+鼠标右键 找到在此处打开命令窗口)输入rundll32 PrScrn.dll PrScrn测试可否运行cmd如果可以则在目录新建记事本输入以下内容后另存为 run.vbs(保存后双击测试一下)...

weixin_35948011的博客 560

python读取图片上的文字_Python文字截图识别OCR工具实例解析

一、简介你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实时把你截出来的图片中的文字识别出来。二、模块import keyboard # 用于监控键盘按下,触发事件(pip install keyboard)import timefrom aip import AipOcr # 调用百度接口(pip ...

weixin_39629780的博客 215

python窗口截图快捷键_用python写截屏小工具

前言一、技术实现1. 相关库2. 定义窗口3. 绘制工具条4. 定义事件函数二、后续改进写在最后前言今天我看了一下自己的文件夹,发现了自己写了许多似乎很无聊的代码。于是乎,一个想法油然而生:“生活已经很无聊了,不如再无聊一点叭”。说干就干,那就开一个专题,我们称之为kimol君的无聊小发明。妙…啊~~~今天要做的东西,就是用python写一个截屏工具。想必大家平时截屏的时候很多都是用的微信的ALT...

weixin_39641697的博客 595

python截图工具_利用 Python 编写一个类似 QQ 截图的小工具应该怎么入手?

你直接调用微信电脑版或者qq安装目录下的一个动态链接库文件就行。#保存下面代码为 "微信截图.pyw",并把微信安装文件夹的 PrScrn.dll 文件拷贝到同一目录下#!/usr/bin/env python#-*- coding:utf-8 -*-import ctypesimport osdef capture():try:dll = ctypes.cdll.LoadLibrary('PrS...

weixin_39843093的博客 479

python androidhelper 语音识字_Python实现截图AI文字识字小工具

1. 获取百度识字API由于百度提供了免费的图片识字API,而且非常好用,所以直接使用百度的api来进行识字。首先在百度AI开放平台注册一个账号,网址http://ai.baidu.com/,注册完之后进入右上角控制台,点击->"文字识别" 点击“创建应用” 创建一个识字的应用,接口选择“文字识别”,然后下面填个人,描述随便写一些 然后再应用主页中可以看到申请到的API key和Secret...

weixin_30856391的博客 521
上一篇: Python 实现基于UDP协议的局域网广播
下一篇: python 简易摸鱼小说阅读器
小6哥
博客等级 码龄18年 16粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值