首页 > 其他分享 >Qt实现录屏功能,支持录制视频和gif

Qt实现录屏功能,支持录制视频和gif

时间:2023-09-27 14:36:14浏览次数:37  
标签:视频 Qt _. 录制 gif 录屏 grab rect

最近在调试工程的时候,看到项目中使用opencv的方式进行录制软件界面视频,于是有了一个想法,做一个录屏的功能结合了视频录制和gif录制。

界面比较简单,就支持选择录制视频还是gif,以及帧率选择。以及录制时候,不允许改变客户端大小,只能录制点击录制前的,客户端中透明区域所在的屏幕。

界面如下:

 录制时的效果:

 选取的屏幕部分代码为:

QScreen *screen = QGuiApplication::primaryScreen();
QPixmap pixmap = screen->grabWindow(QApplication::desktop()->winId(), rect_grab_.x(), rect_grab_.y(), rect_grab_.width(), rect_grab_.height());
QImage image = pixmap.toImage();

rect_grab_就是透明区域的位置和大小

 录制完成后,会自动保存对应的文件:

 

 

本人第一次写博客,写的不好,看到的大佬请批评指正。

工具地址:

链接:https://pan.baidu.com/s/1fTQaYyRQ0q7Vcd0gwLIKGg
提取码:jwuz

 

标签:视频,Qt,_.,录制,gif,录屏,grab,rect
From: https://www.cnblogs.com/yetengfei168/p/17732616.html

相关文章

  • QT之ARM平台的移植
    原文: https://www.cnblogs.com/jzcn/p/15201582.html在开发板中运行QT程序的基本条件是具备QT环境,那么QT的移植尤为重要,接下载我将和小伙伴们一起学习QT的移植。一、准备材料tslib源码qt-everywhere-src-5.12.9.tar.xz源码arm开发版二、获取安装包tslib源码的git获取......
  • Qt报错: variable has incomplete typte ‘QJsonObject’
    Qt常见运行失败的记录1.变量声明未实例化变量在头文件声明了,没new出来直接使用,导致程序运行崩溃2.定义变量时候下面出行红线,出现variblehasincompletetype‘QTextStream’variblehasincompletetype'QTextStream未添加QTextStream头文件3.Qt信号与槽连接失败的几......
  • qt自定义实体类
    在Qt中,可以创建自己的实体类(EntityClass)来表示应用程序中的数据对象或模型。这些实体类通常用于表示数据、管理数据和进行数据操作。以下是创建Qt自定义实体类的一般步骤:创建一个新的C++类:使用QtCreator或您喜欢的C++集成开发环境,创建一个新的C++类来表示实体。可以选择从QObject......
  • 处理日期格式问题:JSON.stringify 导致日期少一天的解决方案
    在前端开发中,经常需要处理日期数据。然而,由于JavaScript日期的表示方式以及JSON格式化日期的一些特性,可能会导致日期数据在传输或存储过程中出现问题。一个常见的问题是使用JSON.stringify对日期进行序列化时,导致日期少一天。在这篇文章中,我们将探讨这个问题,并提供解决方案。......
  • Linux系统使用ffmpeg将大量的图片合成.gif
    ubuntu系统可以使用ffmpeg命令对图像的格式和大小等进行转换,也可以对视频进行处理。安装ffmpegsudoapt-getupdatesudoapt-getupgradesudoaptinstallffmpeg使用ffmpeg将大量的图片合成.gif动图,比如,图片的命名格式为animation-cohesion.0001.tif、animation-cohesion.......
  • ModBus协议原理、Modbus Slave以及基于C++和Qt的代码实现
    ModBus协议目的:规定与PLC交互的指令,其数据帧包括两部分:报文头(MBAP)和帧结构(PDU)。报文头(MBAP)(分为6个部分):1.事务处理标识:即报文序列号,一般每次通信之后就要加1以区别不同的通信数据报文,长度2字节。2.协议标识符:有串口的RTU协议和TCP协议,如0000表示ModbusTCP......
  • Qt PLC Modbus通信
    项目介绍有一个项目需要PC和PLC通信,PLC通信协议是Modbus协议。前两天研究了一下,QT源码也有例程,不过源码读了有点懵,参考了别人的博客,实现了一个简单的通信Demo,测试可以对PLC内部寄存器和中间继电器读写。软件版本和程序总览QT:5.12.12Kits:MSVC2017PLC:信捷XD5软件预览:软件介绍......
  • Qt 5——对象树及对象树容易出现的内存问题
    对象模型(对象树) 在Qt中创建对象的时候会提供一个Parent对象指针,下面来解释这个parent到底是干什么的。QObject是以对象树的形式组织起来的。当你创建一个QObject对象时,会看到QObject的构造函数接收一个QObject指针作为参数,这个参数就是parent,也就是父对象指针。这相当于,在......
  • PyQt5
    PyQt5是一个用于创建图形用户界面(GUI)应用程序的Python库。它是Python编程语言与Qt应用程序框架的绑定,允许开发人员使用Python语言来创建跨平台的桌面应用程序。Qt是一个功能强大且广泛使用的C++库,用于开发图形界面和应用程序功能。以下是关于PyQt5的一些重要信息和功能:1.跨平台性......
  • Qt 5.12.9 + VS 2019配置并实现与三菱Q系列PLC通讯(1)软件的安装
    本人最近配置了QT5.12.9+VS2019,并实现了与三菱Q系列PLC通讯并实现数据交互的基本功能,在这个对中间遇到的一些问题和过程进行文字说明,以后大家有用到相关功能的话可以避免一些不必要的问题~需要安装的软件有三个:QT5.12.9、VS2019、MXComponetS4.19QT安装首先是对......