python实现区域截屏(类似于QQ微信截图)功能

该功能是本人用python写的小工具集Jamtools里面的截屏部分整合,代码完全原创,分享出来。

CSDN源码下载地址:https://download.csdn.net/download/Fandes_F/12318103(积分支持一下呗)
GitHub项目地址:https://github.com/fandesfyf/Jamscreenshot (最新)记得点小星星h

转载请标明作者!

先上效果图:

在这里插入图片描述
可以看到,和微信QQ的截屏是十分相似的,还有微信QQ截屏没有的图片贴图等功能,工具栏在左侧
功能分析:
图片框选功能
图片遮罩功能(未选中的阴影显示)
鼠标放大镜功能(可调放大倍数)
贴图绘制功能(可以充当马赛克,还可以自定义绘制的材质贴图–达到绘图目的)
箭头(就是一个箭头贴图缩放而已)
圆形和方形绘制功能
文字绘制功能
画笔功能(大小可调)
橡皮擦功能(擦掉自己绘制的元素)
背景橡皮擦功能(擦掉截屏本来的图片元素)
最上面是设置画笔大小按钮、颜色选择按钮

从我的小工具集中提取出来后没有了控制界面,就简单地加了一个(确实有点简陋hhh),也随便设置了一下快捷键截屏ALT+Z(不是全局快捷键):
在这里插入图片描述
更复杂的界面自己可以改,
像我的Jamtools里面就做成了这个亚子
在这里插入图片描述
(没错,还有滚动截屏的部分暂时还没有开源,这篇文章不作讨论):

由于代码过长(差不多一千行了。。。可能我写的有点累赘,不过还能用hhh),这里就不贴了,可以直接下载,或者到GitHub下载(点小星星)。

这里只解说原理和基本思路(不然可能代码都看不懂)。。。。

了解原理

前置学习知识

需要一定的python基础才能看懂。。
需要了解一些pyqt5的常用类和结构。。
需要了解图层、遮罩等知识。。

功能分析

总体:
截屏的界面分三层,每一层都是一个Qlabel对象:
主窗体是一个去边框的Qlabel对象,用于显示背景的截屏图片;
中间层是绘画层,parent是主窗体的Qlabel,所有画笔功能都在这一层(除了背景橡皮擦);
最表面的是遮罩层,parent也是主窗体的Qlabel,用于显示选框,未选中的阴影显示,同时监测并绘制边框;

所有的画笔参数、鼠标位置参数等都用主窗体来监测;通过self.parent.xxx向子层传递;
Qlabel相当于画板,Qlabel中的Qpixmap相当于画纸,可以用Qpainter在上面绘画;

主要流程:
截屏后把截取的图片全屏显示在主窗体Qlabel的pixmap中,使用setPixmap()方法即可。将主窗体全屏显示,就可以实现图片位置和原来屏幕上的位置对齐。在屏幕上点击后记录下选框的第一个点,把位置传递给遮罩层,在遮罩层上绘制起点到鼠标位置的方框并显示阴影区;鼠标释放后显示确定等按钮,可以使用右键返回上一步,使用左边画笔工具在第二层的Qlabel上绘图;在用户点击确定后,收集截屏选框坐标,把背景层的原图片和绘画层绘制的轨迹另存为Qpixmap对象把两个Qpixmap对象绘制到一起,然后根据选框坐标裁剪图片,把图片数据输入到用户剪切板中。

其他的像如何设置画笔、绘图等请自行研究了。。。不想解释。。。。

再放一遍:

CSDN下载地址

GitHub项目地址(最新)

Jamtools下载地址 更新到0.12版后支持三大操作系统喽!
一个集截屏、录屏、格式转换、翻译、文字识别、图像识别、键鼠动作录制播放、聊天机器人等功能的工具集。完全免费,禁止贩卖!

滚动截屏部分等我有空了整理一下再发出来蛤


2020.4.9更新
增加了图片固定在屏幕上的功能!
增加了窗口控件识别功能,可以实现类似微信截屏启动时的自动选择窗口的功能(wx是直接查找窗口控件实现的),原理是基于opencv的轮廓识别功能,可以得到更详细的窗口控件识别(甚至能识别出一行行的文字!),具体源码自行摸索~
源码已更新上传
滚动截屏部分也开源了(超级快的滚动截屏,比FSCapture.exe还要精准)

作者机械酱&Fandes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/251068.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

仿造微信截图工具

起因:身处大学身不由己,总有些社团活动需要拉外联啥的,一拉外联就的朋友圈发广告,还不能发私密。为了一劳永逸的解决这个问题,自己用pyhton写了一个类似于p图的代码。 目的:将一张朋友圈截图中的某一矩形区…

微信小程序学习之自定义对话框、底部弹出框(总结)

在Android开发中&#xff0c;经常需要我们自定义对话框或者底部弹出框&#xff0c;用于满足客户的需求。在微信小程序中&#xff0c;也是如此。 一、自定义对话框 &#xff08;1&#xff09;列表形式。 WXML文件代码如下&#xff1a; <!-- 支付方式对话框 --> <vi…

2020微信对话截图生成器,各种截图一键制作!

前言 上次有朋友说想要个微商作图神器,找了几款觉得功能一般般,就没有发出来,今天又有朋友私信了,对比了这几款,选择中一款不错的给大家分享一下,软件是安卓版的,打开就是VIP,无需去登陆了,直接使用即可&#xff01;嗯&#xff01;拉下去看下详情介绍叭&#xff01; // 软件…

微信小程序之页面中关于聊天框三角形的制作和使用

文章目录 方法一&#xff1a;使用三角形的图片&#xff0c;定位在文本的左侧。方法二&#xff1a;通过在页面中制作一个白色背景的正方形&#xff0c;然后对它进行45度旋转即可实现。方法三&#xff1a;直接制作一个三角形 我最近需要写一个消息通知的页面&#xff0c;需要用到…

微信聊天框

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>微信聊天</title><style>.box{margin: …

Qt实现微信截图功能(一)

简述 Qt 之 简单截图功能&#xff08;一&#xff09;实现鼠标选中区域截图Qt 之 简单截图功能&#xff08;二&#xff09;实现可移动选中区域Qt 之 简单截图功能&#xff08;三&#xff09;实现可拖拽选中区域 在之前的文章中有带大家讲解过部分截图功能&#xff0c;有兴趣的…

高仿微信聊天界面长按弹框样式

效果图 背景 在公司做的项目里面&#xff0c;刚好有需要用到微信聊天界面长按弹框样式这种UI的。 网上找了一下&#xff0c;没找到。 Android现成的 ListPopupWindow又不能满足需求。 因此在非上班时间撸一个出来&#xff0c;供大家使用。 示例代码 关键文件、示例代码及…

截图快捷键ctrl加什么

我们使用电脑聊天&#xff0c;玩游戏或者视频&#xff0c;都经常会使用到截图的功能。使用快捷键截图就会很快速简单&#xff0c;下面小编来告诉大家电脑截图快捷键ctrl加什么。希望可以帮助到大家。 截图快捷键ctrl加什么&#xff1a; ps&#xff1a;要使用ctrl的话&#xf…

数睿通2.0数据血缘、标准、质量功能更新发布

文章目录 引言数据血缘数据标准数据质量结语 引言 这段时间工作繁忙&#xff0c;琐事较多&#xff0c;加上二阳的冲击&#xff0c;导致数睿通 2.0 的更新进度缓慢&#xff0c;深表歉意&#xff0c;还望大家可以理解。本次更新主要包含数据治理模块的血缘&#xff0c;标准&…

Linux cp 命令仅复制文件

参考资料&#xff1a; https://unix.stackexchange.com/questions/101916/copy-only-regular-files-from-one-directory-to-another 作为一个经常进行机器学习训练的人&#xff0c;你可能会想给你的训练代码的每一次run都重新创建一个文件夹&#xff0c;此时你可能只想复制一个…

C++实现cp覆盖指令

前言&#xff1a; 想必大家都知道cp这个命令&#xff0c;现在我要给大家分享一个用命令行参数实现的cp覆盖命令 main函数的命令行参数&#xff1a; int main(int argc,char* argv[]) {} 关于argc与argv[ ] 下面这张图可以助你理解 本图来自&#xff1a;https://blog.csdn.…

cp命令详解

用法&#xff1a; cp [选项]... [-T] 源文件 目标文件 或&#xff1a;cp [选项]... 源文件... 目录 或&#xff1a;cp [选项]... -t 目录 源文件... 功能&#xff1a; 将源文件复制至目标文件&#xff0c;或将多个源文件复制至目标目录。 参数&#xff1a; -a或--ar…

cp (复制)命令

用来将一个或多个源文0件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件&#xff0c;当一次复制多个文件时&#xff0c;目标文件参数必须是一个已经存在的目录&#xff0c;否则…

CP命令

cp命令 拷贝文件&#xff0c;cp 【源文件】 【目标文件】&#xff08;拷贝后的文件可直接对其重命名&#xff09; 拷贝目录&#xff0c;cp -r 【源目录】 【目标目录】 拷贝目录是一定要加-r 否则命令不生效。 复制目录时&#xff0c;最好以/结尾。

cp命令用法

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件&#xff0c;当一次复制多个文件时&#xff0c;目标文件参数必须是一个已经存在的目录&#xff0…

复制命令 cp

一、命令详解 1.命令说明 cp是copy的缩写,主要是用来复制文件或者目录。cp命令可以将一个或者多个文件、目录复制到一个制定的文件或目录下&#xff0c;也可以同时复制多个文件到一个指定的目录中。 默认情况&#xff0c;cp会被设置一个别名cp is aliased to cp -i&#xff0c…

2022年适合初学者的Python书籍推荐

一、前言 网上有很多Python书或者视频&#xff0c;种类繁多该怎么选择&#xff1f; 看书全是文字看就了眼睛累&#xff0c;也容易厌倦&#xff0c;看视频有时候又觉得讲的慢&#xff0c;有其他方案吗&#xff1f; 其实&#xff0c;关于自学python&#xff0c;找一本浅显易懂&…

推荐几本Python好书!

大家好&#xff01;我是Sitin涛哥&#xff01; 经常有小伙伴问我推荐Python书籍&#xff0c;每次都零零碎碎的。 今天我整理了一些Python3.x编程相关书籍&#xff0c;从基本概念到完整项目开发&#xff0c;并加以数学辅助&#xff0c;帮助你迅速掌握Python编程&#xff0c;成为…

Python入门必备的书籍推荐

想要自学好Python&#xff0c;搜集资料是最关键的一步&#xff0c;现在在网上有很多的资料、视频和网站可供自学入门者选择。但是想要扎扎实实学好基础&#xff0c;书籍是不可少的一种选择&#xff0c;因为书本上的知识还是跟网上的介绍方法有点不一样的&#xff0c;还有书籍上…

清华教授极力推荐的三本入门学习Python书籍

目录 Python入门书&#xff08;适合初学者&#xff09; Python进阶书&#xff08;适合有基础的&#xff09; Python数据科学&#xff08;适合初学者&#xff09; Python入门书&#xff08;适合初学者&#xff09; 这应该是世界上最畅销的Python编程书&#xff0c;没有之一。…